歡迎加入 Python 官方文檔翻譯團隊:https://www.transifex.com/python-doc/
datetime 模塊提供了可以通過多種方式操作日期和時間的類。在支持日期時間數學運算的同時,實現的關注點更着重於如何能夠更有效地解析其屬性用於格式化輸出和數據操作。
datetime 模塊包括 data、time 的所有功能,常用的 datatime 實例方法如下:
datetime.now():獲取當天的日期和時間
datetime.date(t):獲取當天的日期,t 爲 datetime 實例參數
datetime.time(t):獲取當天的時間,t 爲 datetime 實例參數
datetime.ctime(t):獲取【星期 月 日 時 分 秒 年】格式的字符串,t 爲 datetime 實例參數
datetime.utcnow(t):獲取當前的 UTC(Universal Time Coordinated,協調世界時)日期和時間
datetime.timestamp(t):獲取當天的 UNIX 時間戳,t 爲 datetime 實例參數
datetime.fromtimestamp(t_tamp):根據時間戳返回 UTC 日期時間,t_tamp 爲時間戳浮點數
datetime.combine(d, t):綁定日期、時間,生成新的 datetime 對象,d 爲日期對象,t 爲時間對象
datetime.strptime(date_str, sf):根據字符串和指定的格式生成新的 datetime 對象,date_str 爲字符串日期時間,sf 爲指定格式
datetime.timetuple(t):把 datetime 對象所有屬性轉爲時間元組對象,t 爲 datetime 實例參數
t.isocalendar():獲取 ISO 格式的日期(元組形式),t 爲 datetime 實例對象
t.strftime(date_str_format):獲取自定義格式的日期時間字符串,t 爲 datetime 實例對象,date_str_format 指定格式
datetime 模塊裏面的 datetime 類基本功能示例:
>>> from datetime import datetime, date, time # 從 datetime 模塊導入 datetime、date、time
>>>
>>> print(datetime.now()) # 返回當天的日期和時間
2020-02-21 15:32:27.356006
>>>
>>> today = datetime.now() # 定義 today 爲當前日期時間對象
>>> print(datetime.date(today)) # 返回當天的日期對象
2020-02-21
>>>
>>> print(datetime.time(today)) # 返回當天的時間對象
15:57:38.770308
>>>
>>> print(datetime.ctime(today)) # 返回【星期 月 日 時 分 秒 年】格式的字符串
Fri Feb 21 15:57:38 2020
>>>
>>> print(datetime.utcnow()) # 返回當前的 UTC 日期和時間
2020-02-21 07:59:27.180956
>>>
>>> print(datetime.timestamp(today)) # 返回當天的 UNIX 時間戳,浮點數類型
1582271858.770308
>>>
>>> print(datetime.fromtimestamp(datetime.timestamp(today))) # 根據時間戳返回 UTC 日期時間
2020-02-21 15:57:38.770308
>>>
>>> date1 = date(2020,2,21) # 使用 date 類,實現實例化 date1 對象
>>> time1 = time(16,2,30) # 使用 time 類,實現實例化 time1 對象
>>> print(datetime.combine(date1, time1)) # 綁定日期、時間,生成新的 datetime 對象
2020-02-21 16:02:30
>>>
>>> NewDateTime = datetime.strptime("21/2/20 16:10", '%d/%m/%y %H:%M') # 用字符串和指定格式生成新的 datetime 對象
>>> print(NewDateTime)
2020-02-21 16:10:00
>>>
>>> today = datetime.now() # 定義 today 爲當前日期時間對象
>>> for i in datetime.timetuple(datetime.now()): # 將 today 當作時間元組,循環打印
print(i)
2020
2
21
17
57
43
4
52
-1
>>>
>>> print(today.isocalendar()) # ISO 格式的日期
(2020, 8, 5)
>>>
>>> print(today.strftime('%Y 年 %m 月 %d 日 %H:%M:%S %p # 對 datetime 對象自定義格式,返回字符串類型的值
2020 年 02 月 21 日 17:57:02 PM
strftime()
和 strptime()
方法會用到時間日期格式化符號,各個格式化符號所代表的意思如下:
格式化符號 | 含義 |
---|---|
%a | 本地簡化星期名稱 |
%A | 本地完整星期名稱 |
%b | 本地簡化的月份名稱 |
%B | 本地完整的月份名稱 |
%c | 本地相應的日期表示和時間表示 |
%d | 月內中的一天(0-31) |
%f | 以十進制數表示的毫秒,在左側補零 |
%H | 24小時制小時數(0-23) |
%I | 12小時制小時數(01-12) |
%j | 年內的一天(001-366) |
%m | 月份(01-12) |
%M | 分鐘數(00=59) |
%p | 本地A.M.或P.M.的等價符 |
%S | 秒(00-59) |
%U | 一年中的星期數(00-53)星期天爲星期的開始 |
%w | 星期(0-6),星期天爲星期的開始 |
%W | 一年中的星期數(00-53)星期一爲星期的開始 |
%x | 本地相應的日期表示 |
%X | 本地相應的時間表示 |
%y | 兩位數的年份表示(00-99) |
%Y | 四位數的年份表示(000-9999) |
%z | ±HHMM[SS[.ffffff]] 形式的 UTC 差值(如果對象爲簡單型則爲空字符串) |
%Z | 當前時區的名稱 |
%% | %號本身 |