天天看點

Python datetime子產品學習

一、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

五部分組成
>>> 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__

方法
>>> 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

類的合體,其大部分的方法和屬性都繼承于這二個類。
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  : 總秒數

繼續閱讀