python 時間:datatime

  • 2020 年 1 月 13 日
  • 筆記

官網時間格式說明:https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

導入模組:from datetime import datetime

查看系統當前時間

now = datetime.now()  print (now)

運行結果:

2018-07-27 15:19:50

str轉換為datetime

cday = datetime.strptime('2016-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')  print (cday)

運行結果:

2016-06-01 18:19:59

datetime轉換為str:給客戶看

now = datetime.now()  print(now.strftime('%a, %b %d %H:%M'))

運行結果:

Fri, Jul 27 03:56

datetime加減: 計算

from datetime import datetime, timedelta      now = datetime.now()  print (now)  delta_add = now + timedelta(days = 3, hours=10, minutes = 1)  print(delta_add)  delta_add = now - timedelta(days = 1, hours=10, minutes = 1)  print(delta_add)

運行結果:

2018-07-27 04:01:57.861809  2018-07-30 14:02:57.861809  2018-07-25 18:00:57.861809

本地時間轉換為UTC時間:timezone

from datetime import datetime, timedelta, timezone  tz_utc_8 = timezone(timedelta(hours=8)) # 創建時區UTC+8:00  print (tz_utc_8)  now = datetime.now()  print (now)

運行結果:

UTC+08:00  2018-07-29 03:27:01.248631

本地時間轉換為UTC時間:replace

dt = now.replace(tzinfo=tz_utc_8) # 強制設置為UTC+8:00  print (dt)

運行結果:

2018-07-29 03:27:01.248631+08:00

時區轉換:astimezone

utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc) # 拿到UTC時間,並強制設置時區為UTC+0:00:  print(utc_dt)    bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8))) # astimezone()將轉換時區為北京時間  print(bj_dt)    tokyo_dt = bj_dt.astimezone(timezone(timedelta(hours=9)))  # astimezone()將bj_dt轉換時區為東京時間:  print(tokyo_dt)

運行結果:

2018-07-29 03:42:40.795549+00:00  2018-07-29 11:42:40.795549+08:00  2018-07-29 12:42:40.795549+09:00

小結:

  1. 時區轉換一定要用帶有UTC時區的時間進行轉換。
  2. 時區轉換可以不從+00:00的基礎時區轉換,可以從其他帶有UTC時區的時間轉換,如:bj_dt–>tokyo_dt,但要確保前面時間的時區是正確的