🖥

#python で 英語月表記・タイムゾーン尽きの日付文字列を parse して datetime オブジェクトに変換し、さらに unix

2019/04/09に公開
  • 特定のフォーマットで文字列を与えて datetime オブジェクトに変換する
  • datetime オブジェクトから unixtimestamp に変換する

UTC

UTC の場合

from datetime import datetime

datetime_str_utc = 'Mon Apr 08 05:00:25 +0000 2019'

datetime_obj_utc = datetime.strptime(datetime_str_utc,'%a %b %d %H:%M:%S %z %Y')
# datetime.datetime(2019, 4, 8, 5, 0, 25, tzinfo=datetime.timezone.utc)

timestamp_utc = datetime.timestamp(datetime_obj_utc)
# 1554699625.0

JST ( Localtime )

同じ時刻を JST 基準で与えると、UTC的にはそれよりも9時間前なので、timestamp は9時間分 ( 60609 = 32400秒 ) 小さくなる

from datetime import datetime

datetime_str_jst = 'Mon Apr 08 05:00:25 +0900 2019'

datetime_obj_jst = datetime.strptime(datetime_str_jst,'%a %b %d %H:%M:%S %z %Y')
# datetime.datetime(2019, 4, 8, 5, 0, 25, tzinfo=datetime.timezone(datetime.timedelta(seconds=32400)))

timestamp_jst = datetime.timestamp(datetime_obj_jst)
# 1554667225.0

Compair

  • 同じ時刻表記に対して、UTC基準で算出した timestamp の方が 9時間進んでいる
  • よってUTC基準のtimestmapからJST基準のtimestmapを差し引くと 60*60*9 = 32400秒 の違いが出る
timestamp_utc - timestamp_jst
# 32400.0

ちなみに

タイムゾーンを考える時は何百回だって頭がパズルになります

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/1133

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-04-09

Discussion