1. 程式人生 > >python基礎知識之模組——datetime

python基礎知識之模組——datetime

目錄

datetime模組中有一下幾個類:

datetime.date類

class datetime.date(year, month, day)

date類中常用的方法:

import datetime
print('today方法:',datetime.date.today())# 返回當前日期
print('fromtimestamp方法:',datetime.date.fromtimestamp(86400))# 返回時間戳的日期

輸出結果為:
today方法: 2018-09-27
fromtimestamp方法: 1970-01-02

date類中物件的常用方法和屬性:

import datetime
a = datetime.date(2020,5,7)
print('a.year:',a.year)# 返回date物件的年份
print('a.month:',a.month)# 返回date物件的月份
print('a.day:',a.day)# 返回date物件的日
print('a.timetuple():',a.timetuple())# 返回date物件的時間元組
print('a.weekday():',a.weekday())#返回周幾(0-6)
print('a.isoweekday():',a.isoweekday())#返回周幾(1-7)
print('a.isocalendar():',a.isocalendar())#返回一個元組(年份,這一年的第幾周,周幾)
print('a.isoformat():',a.isoformat())#返回iso 8601格式(YYYY-MM-DD)
print('a.ctime():',a.ctime())# 返回一個表示日期的字串
print('a.strftime():',a.strftime('%Y年%m月%d日'))# 返回指定格式的日期字串
print('a.replace():',a.replace(year = 2088,month = 11,day = 22))#替換指定年月日

輸出結果為:
a.year: 2020
a.month: 5
a.day: 7
a.timetuple(): time.struct_time(tm_year=2020, tm_mon=5, tm_mday=7, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=128, tm_isdst=-1)
a.weekday(): 3
a.isoweekday(): 4
a.isocalendar(): (2020, 19, 4)
a.isoformat(): 2020-05-07
a.ctime(): Thu May  7 00:00:00 2020
a.strftime(): 2020年05月07日
a.replace(): 2088-11-22

datetime.time類

class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

time類的物件的方法和屬性:

import datetime
b = datetime.time(22,33,44,1111)#4個引數分別為:時,分,秒,微秒(1微妙=10的負6次方秒)
print('b.hour:',b.hour)#返回time物件的小時數
print('b.minute:',b.minute)# time物件的分鐘數
print('b.second:',b.second)# time物件秒數
print('b.microsecond:',b.microsecond) # time物件微秒數
print('b.isoformat()',b.isoformat())#返回 ISO 8601格式:HH:MM:SS.mmmmmm
print('b.strftime():',b.strftime('%H點%M分%S秒%f微妙'))# 返回指定的時間格式
print('b.replace():',b.replace(hour=23))#替換指定的時間

輸出結果為:
b.hour: 22
b.minute: 33
b.second: 44
b.microsecond: 1111
b.isoformat() 22:33:44.001111
b.strftime(): 22點33分44秒001111微妙
b.replace(): 23:33:44.001111

datetime.datetime類

class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

datetime類中常用的方法:

import datetime
print('datetime.datetime.today():',datetime.datetime.today()) # 返回本地當前的時間
print('datetime.datetime.now():',datetime.datetime.now())#now()接收一個引數tz,也就是timezone時區,如果這個引數不存在時,它的表現等同於today()
print('datetime.datetime.utcnow():',datetime.datetime.utcnow())#返回UTC時間
print('datetime.datetime.fromtimestamp():',datetime.datetime.fromtimestamp(111111111))#返回指定時間戳對應的時間
#combine()用於拼接date物件和time物件
print('datetime.datetime.combine():',datetime.datetime.combine(datetime.date(2012,12,1),datetime.time(12,23,22)))
print('datetime.datetime.strptime():',datetime.datetime.strptime('2099.9.1','%Y.%m.%d'))

輸出結果為:
datetime.datetime.today(): 2018-09-27 21:42:01.471634
datetime.datetime.now(): 2018-09-27 21:42:01.471731
datetime.datetime.utcnow(): 2018-09-27 13:42:01.471796
datetime.datetime.fromtimestamp(): 1973-07-10 08:11:51
datetime.datetime.combine(): 2012-12-01 12:23:22
datetime.datetime.strptime(): 2099-09-01 00:00:00

datetime類中物件的常用方法和屬性:

import datetime
d = datetime.datetime(2018,1,14,8,18,18)
print('d.date():',d.date())# 從datetime物件中拆分出date
print('d.time():',d.time())# 從datetime物件中拆分出time
print('d.timetz():',d.timetz())#從datetime物件中拆分出時區屬性的time
print('d.replace(year = 2030,day = 19):',d.replace(year = 2030,day = 19))#替換
print('d.timetuple():',d.timetuple())#返回時間元組
print('d.toordinal():',d.toordinal())
print('d.weekday():',d.weekday())#周幾(0-6)
print('d.isoweekday():',d.isoweekday())#周幾(1-7)
print('d.isocalendar():',d.isocalendar())#返回一個元組(年份,這一年的第幾周,周幾)
print('d.ctime():',d.ctime())#返回日期的字串格式
print('d.strftime():',d.strftime('%Y-%m-%d %H:%M')) #以指定格式返回日期字串

輸出結果為:
d.date(): 2018-01-14
d.time(): 08:18:18
d.timetz(): 08:18:18
d.replace(year = 2030,day = 19): 2030-01-19 08:18:18
d.timetuple(): time.struct_time(tm_year=2018, tm_mon=1, tm_mday=14, tm_hour=8, tm_min=18, tm_sec=18, tm_wday=6, tm_yday=14, tm_isdst=-1)
d.toordinal(): 736708
d.weekday(): 6
d.isoweekday(): 7
d.isocalendar(): (2018, 2, 7)
d.ctime(): Sun Jan 14 08:18:18 2018
d.strftime(): 2018-01-14 08:18

datetime.timedelta類

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

timedelta物件表示一個時間段,即兩個日期 (date) 或日期時間 (datetime) 之間的差。用法如下:

import datetime
a = datetime.date.today()
b = datetime.datetime.now()
print('現在日期是:',a)
print('計算10天前的日期:',a - datetime.timedelta(days=10))
print('現在時間是:',b)
print('計算5天5小時之前的日期',b - datetime.timedelta(days=5,hours=5))

輸出結果為:
現在日期是: 2018-09-27
計算10天前的日期: 2018-09-17
現在時間是: 2018-09-27 21:10:13.414434
計算5天5小時之前的日期 2018-09-22 16:10:13.414434

datetime.tzinfo類

該類為抽象基類,不能被直接例項化