Python每日一練0020

問題

你須要執行簡單的日期操做,計算兩個日期間隔多少天、某個日期後的多少天是幾月幾日、轉換時間字符串的格式等html

解決方案

使用datetime庫中的datetimetimedeltapython

其中datetime類表明一個日期 + 時間,例如2018年4月16日11點00分00秒;timedelta類表明一個日期間隔數據庫

對於datetime實例,能夠直接進行-數學運算獲得一個timedelta實例,也就是兩個日期時間的間隔,好比計算兩個日期之間有多少天微信

>>> import datetime
>>> a = datetime.datetime(year=2018, month=4, day=16)
>>> b = datetime.datetime(year=2018, month=3, day=5)
>>> delta = a - b
>>> delta.days
42
>>> print(delta)
42 days, 0:00:00

因此咱們也能夠讓一個datetime實例加上一個timedelta實例,獲得一個新的datetime實例,好比說我想計算從今天開始日後20天是幾月幾日spa

>>> start = datetime.datetime.now()
>>> print(start)
2018-04-16 11:12:50.846262
>>> delta = datetime.timedelta(days=20)
>>> end = start + delta
>>> print(end)
2018-05-06 11:12:50.846262

而且datetime類還提供了strftimestrptime進行字符串和日期時間之間的轉換操做code

咱們能夠使用strftime將一個datetime實例轉換爲字符串,也能夠用strptime將一個字符串轉換爲datetime實例,而且本身控制格式htm

>>> dt = datetime.datetime.now()
>>> s = datetime.datetime.strftime(dt, '%Y-%m-%d %X')
>>> s
'2018-04-16 11:21:01'
>>> dt2 = datetime.datetime.strptime(s, '%Y-%m-%d %X')
>>> dt2
datetime.datetime(2018, 4, 16, 11, 21, 1)

討論

使用datetimetimedelta能夠對日期時間很方便的操做,除了上面介紹的,還好比將一個列表中某個時間段的數據取出來、對數據庫中select出來的日期時間進行操做、或者對日期字符串進行從新格式化等等rem

除了datetimetimedelta類外,datetime模塊還支持datetime等類,若是隻須要表示日期(X年X月X日),能夠只使用date類,若是隻須要表示時間(X時X分X秒),能夠使用time文檔

關於strftimestrptime的佔位符(%Y %m %d這種)見:https://docs.python.org/3/lib...字符串

關於datetime更詳細的文檔見:https://docs.python.org/3/lib...

來源

Segment Fault

關注

歡迎關注個人微信公衆號:python每日一練

相關文章
相關標籤/搜索