關於日期的一些操作:基於datetime模塊

time模塊可以很好地獲取時間戳(time.time()),並進行格式化處理。但是,如果想要以更方便的格式顯示日期,或者對日期進行加減運算(如獲取167天前是什麼日期,89天后是什麼日期),time模塊就無能爲力了。這個時候就需要用到datetime模塊。
datetime模塊也有自己的datetime數據類型,其值表示一個特定的時刻。如

import datetime # 導入模塊
datetime.datetime.now() # 獲取當前時間
t0 = datetime.datetime(2020,1,1,13,45,34)
t0.year,t0.month,t0.day,t0.hour,t0.minute,t0.second # 年,月,日,時,分,秒

image.png

日期間加減運算

datetime模塊中提供了time.delta數據類型,該類型表示一段時間,而非一個具體的時刻,使用可以用於時間段之間的加減。如

delta = datetime.timedelta(days = 89,hours = 10,minutes = 3,seconds = 47)
# 這裏delta表示89天,10小時,3分鐘,47秒的一段時間
dt = datetime.datetime.now() + delta
dt

image.png

現在來回答我們開頭提出的兩個問題。

  1. 167天前是什麼日期
dt = datetime.datetime.now() + datetime.timedelta(days = -167)
dt

image.png

  1. 89天后是什麼日期
dt = datetime.datetime.now() + datetime.timedelta(days = 89)
dt

image.png

格式化日期

將datetime類型轉換爲字符串

方法:使用strftime函數

dt = datetime.datetime(2020,2,14,15,3,27)
res = dt.strftime('%Y-%m-%d %H:%M:%S')
# 或者 res = datetime.datetime.strftime(dt,'%Y-%m-%d %H:%M:%S')
print(type(res),res)

image.png

將字符串轉換爲datetime類型

方法:使用strptime函數

dtstr = '2020-02-14 15:03:27'
res = datetime.datetime.strptime(dtstr,'%Y-%m-%d %H:%M:%S')
print(type(res),res)

image.png

日期格式化符號

%y 兩位數的年份表示(00-99)
%Y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%H 24小時制小時數(0-23)
%I 12小時制小時數(01-12)
%M 分鐘數(00-59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
%j 年內的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(00-53)星期天爲星期的開始
%w 星期(0-6),星期天爲星期的開始
%W 一年中的星期數(00-53)星期一爲星期的開始
%x 本地相應的日期表示
%X 本地相應的時間表示
%Z 當前時區的名稱
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章