一、datetime子產品介紹
datetime子產品中包含的類:
類名 | 功能說明 |
---|---|
date | 日期對象,常用的屬性有year, month, day |
time | 時間對象 |
datetime | 日期時間對象,常用的屬性有hour, minute, second, microsecond |
datetime_CAPI | 日期時間對象C語言接口 |
timedelta | 時間間隔,即兩個時間點之間的長度 |
tzinfo | 時區資訊對象 |
二、date類
1.date類對象由year、month、day三部分構成;
date(year,month,day)
2.對year、month、day的通路;
使用
year
,
month
,
day
三個資料描述符可以進行通路,或者使用
__getattribute__擷取。
>>> d = datetime.date.today()
>>> d
datetime.date(2018, 7, 10)
>>> d.year
2018
>>> d.month
7
>>> d.__getattribute__('year')
2018
>>>
3.一些常用方法
1).
isocalendar
:傳回一個三個值依次為:
year
年份,
week number
周數,
weekday
星期數(周一為1…周日為7)的元組。
>>> d = datetime.date(2018,7,10)
>>> d.isocalendar()
(2018, 28, 2)
>>> d.isocalendar()[0]
2018
>>>
2).
isoformat
: 傳回符合ISO 8601标準 (
YYYY-MM-DD
) 的日期字元串;
>>> d = datetime.date(2018,7,10)
>>> d.isoformat()
'2018-07-10'
3).
timetuple
:該方法為了相容
time.localtime
傳回一個類型為
time.struct_time
的數組,但有關時間的部分元素值為0:
>>> d = datetime.date(2018,7,10)
>>> d.timetuple()
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=191, tm_isdst=-1)
>>> d.timetuple().tm_year
2018
4).
fromtimestamp
:根據給定的時間戮,傳回一個date對象
>>> time.time()
1531207860.6088855
>>> datetime.date.fromtimestamp(time.time())
datetime.date(2018, 7, 10)
>>>
5).
today
:傳回目前日期
>>> datetime.date.today()
datetime.date(2018, 7, 10)
>>>
6).用
__format__、strftime、
__str__
方法以指定格式進行日期輸出
>>> d = datetime.date(2018,7,10)
>>> d.__format__('%Y-%m-%d')
'2018-07-10'
>>> d.__format__('%Y/%m/%d')
'2018/07/10'
>>> d.strftime('%y/%m/%d')
'18/07/10'
>>> d.__str__()
'2018-07-10'
三、time類
1. time
類由 hour
小時、 minute
分鐘、 second
秒、 microsecond
毫秒和 tzinfo
五部分組成
time
hour
minute
second
microsecond
tzinfo
>>> t = datetime.time(15,48,20,599)
>>> t
datetime.time(15, 48, 20, 599)
>>> t.hour
15
>>> t.second
20
>>> t.__getattribute__('hour')
15
2.時間類輸出 __format__、strftime、
__str__
方法
__format__、strftime、
__str__
>>> t.__format__('%H:%M:%S')
'15:48:20'
>>> t.strftime('%H:%M:%S')
'15:48:20'
>>> t.__str__()
'15:48:20.000599'
>>>
四、datetime類
1. datetime
類其實是可以看做是 date
類和 time
類的合體,其大部分的方法和屬性都繼承于這二個類。
datetime
date
time
2.datetime的方法和屬性
①傳回datetime對象的日期和時間
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018,7,10,19,8,642077)
>>> d.date()
datetime.date(2018,7,10)
>>>d.time()
datetime.time(19,49,8,642077)
②傳回UTC時間元祖
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018,7,10,19,8,642077)
>>> d.utctimetuple()
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=10, tm_hour=19, tm_min=8, tm_sec=33, tm_wday=2, tm_yday=81, tm_isdst=0)
③根據string, format 2個參數,傳回一個對應的datetime對象
>>> datetime.datetime.strptime('2018-7-10 20:01','%Y-%m-%d %H:%M')
datetime.datetime(2018, 7, 10, 20, 01)
④strftime格式化時間
>>> d = datetime.datetime.now()
>>> d.strftime('%Y-%m-%d %H:%M')
2018-7-10 20:05
⑤時間戳與日期時間互轉
>>> s = datetime.datetime.fromtimestamp(time.time())
>>> s
datetime.datetime(2018, 7, 10, 20, 9, 42,835691)
>>> s.timestamp()
1531228127.684423
⑥datetime的屬性
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018,7,10,19,8,642077)
>>> d.year
2018
>>> d.hour
19
五、timedelta類
timedelta類是用來計算兩個datetime對象的內插補點的。
此類中包含如下屬性:
1、days:天數
2、microseconds:微秒數
3、seconds:秒數(>=0 并且 <1天)
4、total_seconds : 總秒數