2018年7月4日 星期三

Python 取得 today

要在 Python 取得 today 日期,可以用下面語法:

from datetime import date
NowDate=date.today()

#印出 20180704
print(NowDate.strftime('%Y%m%d'))
#印出 2018-07-04
print(NowDate.strftime('%Y-%m-%d'))


關於 date 這物件,有提供 replace 方法,可以讓你針對 year / month / day 做調整。
如果只是針對 year 做修改(例如  +1 年),應該沒甚麼問題;但如果針對 month 或 day 修改,就要考慮會不會出現 13月 、 32日 這種超出界線的問題。實際上,replace 這方法並不會自動幫我們處理跳到下個月或下一年的事情,但他會去檢查 replace 後的日期是否正確。

#故意讓 day 超出界線
NextDaty=NowDate.replace(day=NowDate.day+31)

執行結果的錯誤訊息會是:day is out of range for month

如果想要對 month 或 day 做調整,可以用  timedelta 來完成
但要記得先 import  datetime

from datetime import date
import datetime
NowDate=date.today()
date_1 = datetime.datetime.strptime(NowDate.strftime('%m/%d/%y'), "%m/%d/%y")
#end_date 就會是 31 天之後的日期
end_date = date_1 + datetime.timedelta(days=31)


參考:
01.Adding 5 days to a date in Python
https://stackoverflow.com/questions/6871016/adding-5-days-to-a-date-in-python

02.Getting today's date in YYYY-MM-DD in Python?
https://stackoverflow.com/questions/32490629/getting-todays-date-in-yyyy-mm-dd-in-python