python基礎入門教程:datetime 熱文推薦:

與time模塊相比,datetime模塊提供的接口更直觀、易用,功能也更加強大。

導入方式: import datetime

datetime模塊定義了以下幾個類(注意:這些類的對象都是不可變的!)。

使用datetime模塊主要就是對其前四個類的操作。另外,datetime模塊中還定義了兩個常量:

datetime.MINYEAR:

datetime.date或datetime.datetime對象所允許的年份的最小值,該值爲1。

datetime.MAXYEAR:

datetime.date或datetime.datetime對象所允許的年份的最大值,該值爲9999。

一、datetime.date類

定義:class datetime.date(year, month, day)

datetime模塊下的日期類,只能處理年月日這種日期時間,不能處理時分秒。

在構造datetime.date對象的時候需要傳遞下面的參數:


主要屬性和方法:

使用範例:

>>> import time
>>> from datetime import date
>>>
>>> date.max
>>> date.min
>>> date.resolution
>>> date.today()
>>> date.fromtimestamp(time.time())
>>> d = date.today()
>>> d.year
>>> d.month
>>> d.day
>>> d.replace(2018)
>>> d.replace(2018, 5)
>>> d.replace(2018, 5, 2)
>>> d.timetuple()
>>> d.toordinal()
>>> d.weekday()
>>> d.isoweekday()
>>> d.isocalendar()
>> d.isoformat()
>>> d.ctime()
>>> d.strftime('%Y/%m/%d')

二、 datetime.time類

定義:class datetime.time(hour, [minute[, second, [microsecond[, tzinfo]]]])

datetime模塊下的時間類,只能處理時分秒。

在構造datetime.time對象的時候需要傳遞下面的參數:

主要屬性和方法:

使用範例:

>>> from datetime import time
>>>
>>> time.max
datetime.time(23, 59, 59, 999999)
>>> time.min
datetime.time(0, 0)
>>> time.resolution
datetime.timedelta(0, 0, 1)
>>>
>>> t = time(12, 15, 40, 6666)
>>> t.hour
20
>>> t.minute
5
>>> t.second
40
>>> t.microsecond
8888
>>> t.replace(21)
>>> t.isoformat()
>>> t.strftime('%H%M%S')
>>> t.strftime('%H%M%S.%f')

三、 datetime.datetime類

定義:class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

一定要注意這是datetime模塊下的datetime類,千萬不要搞混了!

datetime模塊下的日期時間類,你可以理解爲datetime.time和datetime.date的組合類。

在構造datetime.datetime對象的時候需要傳遞下面的參數:


主要屬性和方法:


使用範例:

>>> from datetime import datetime, timezone
>>> datetime.today()
>>> datetime.now()
>>> datetime.now(timezone.utc)
>>> datetime.utcnow()
>>> import time
>>> datetime.fromtimestamp(time.time())
>>> datetime.utcfromtimestamp(time.time())
>>> datetime.combine(date(2017, 5, 4), t)
>>> datetime.strptime('2017/05/04 10:23', '%Y/%m/%d %H:%M')
>>> dt = datetime.now()
>>> dt
>>> dt.year
>>> dt.month
>>> dt.day
>>> dt.hour
>>> dt.minute
>>> dt.second
>>> dt.timestamp()
>>> dt.date()
>>> dt.time()
>>> dt.timetz()
>>> dt.replace(2018)
>>> dt.timetuple()
>>> dt.utctimetuple()
>>> dt.toordinal()
>>> dt.weekday()
>>> dt.isocalendar()
>>> dt.isoformat()
>>> dt.isoformat(sep='/')
>>> dt.isoformat(sep=' ')
>>> dt.ctime()
>>> dt.strftime('%Y%m%d %H:%M:%S.%f')

四、 datetime.timedelta類

定義:class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0)

timedelta對象表示兩個不同時間之間的差值。可以對datetime.date, datetime.time和datetime.datetime對象做算術運算。

主要屬性和方法:

使用範例:

>>> import datetime
>>>
>>> datetime.timedelta(365).total_seconds()     # 一年包含的總秒數
31536000.0
>>> dt = datetime.datetime.now()
>>> dt + datetime.timedelta(3)              # 3天后
datetime.datetime(2017, 5, 29, 11, 17, 18, 339791) 
>>> dt + datetime.timedelta(-3)             # 3天前
datetime.datetime(2017, 5, 23, 11, 17, 18, 339791) 
>>> dt + datetime.timedelta(hours=3)        # 3小時後
datetime.datetime(2017, 5, 26, 14, 17, 18, 339791) 
>>> dt + datetime.timedelta(hours=-3)       # 3小時前
datetime.datetime(2017, 5, 26, 8, 17, 18, 339791) 
>>> dt + datetime.timedelta(hours=3, seconds=30)   # 3小時30秒後  
datetime.datetime(2017, 5, 26, 14, 17, 48, 339791)
>>> dt2 = dt + datetime.timedelta(hours=10)
>>> dt2 -dt
datetime.timedelta(0, 36000)
>>> td = dt2 - dt
>>> td.seconds
36000

熱文推薦:

全網首發!python學習路線項目案例整合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章