【備忘録】Pythonで時刻を扱う

Created 2018年9月14日13:33
Updated 2018年9月14日14:08
Categories Python

Python公式見ろよって話なのですが、よく使う割に毎回忘れるのでメモ。

文字列を時刻に変換

文字列から時刻に変換するといろいろ便利なのですが、タイムゾーンとかの扱いが結構めんどいですよね。

>>> from datetime import datetime
>>> datetime.strptime("2018-08-23T08:04:14.989+0900", "%Y-%m-%dT%H:%M:%S.%f%z")
datetime.datetime(2018, 8, 23, 8, 4, 14, 989000, tzinfo=datetime.timezone(datetime.timedelta(0, 32400)))

タイムゾーンは文字列でUTCとかなら%Zです(JSTだと認識しなかった気もしますが)。

正確な処理が求められないならミリ秒とかタイムゾーンとかはreplaceとかで消しても良いかもですね。

あと日本限定ならtimedeltaで9時間決めうちで足しても・・・さすがにダメかw

時刻の差分を表示

時刻を引き算して数値でどれくらい違うかが欲しい時があります。

その場合はシンプルに、

>>> (datetime1 - datetime2).total_seconds()
13.479

でOKです。秒単位で帰ってくるので、ミリ秒とか欲しかったら1000を掛けましょう。

作ったけどブログシステムにバグがあってうまいことレンダリングされない・・・

後でなおす()

意味 フォーマット
2018 %Y
08 %m
23 %d
00~24 %H
00~60 %M
00~60 %S
マイクロ秒 001, 000001 %f
タイムゾーン(オフセット) +0900 %z
タイムゾーン(文字列) UTC %Z

コメントを投稿

コメント