在處理時序資料的時候,常會遇到需要進行時間轉換的問題
像是查詢往後22天的日期是哪一天 ?
這個日期是星期幾 ?
如何將字串轉成 datetime 格式 ?
以下介紹兩個在處理時間常會用到的 python package,分別是 datetime 以及 dateutil
- datetime
查詢現在時間
1
2
3
4
5import datetime
datetime.datetime.now()
#datetime.datetime(2019, 5, 15, 22, 10, 54, 789000)
datetime.date.today()
#datetime.date(2019, 5, 15)將datetime及date轉成字串
1
2datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
#'2019-05-15 22:01:57'
%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)
獲取當天開始以及結束時間
1
2
3
4datetime.datetime.combine(datetime.date.today(), datetime.time.min)
#datetime.datetime(2019, 5, 15, 0, 0)
datetime.datetime.combine(datetime.date.today(), datetime.time.max)
#datetime.datetime(2019, 5, 15, 23, 59, 59, 999999)獲取兩個datetime的時間差
1
2(datetime.datetime(2019,5,20,12,0,0) - datetime.datetime.now()).total_seconds()
#394778.361 (s)獲取日期的相關資訊
1
2datetime.datetime(2019,5,15).weekday()
#2 (Monday is 0 and Sunday is 6)
- dateutil (擴增datetime package的功能)
- 將現在時間往前往後移動
1 | datetime.datetime.now() |
relativedelta可調參數: years, months, days, weeks, hours, minutes, seconds, microseconds (數值可正可負,負代表過去,正代表未來)
- 常用function
1 | def last_month_cal(time_, month): |
Comments