2018/12/02
[Python] datetime.combine() でタイムゾーンは指定しない方がよい
先日、「datetime のコンストラクタでタイムゾーンは指定しない方がよい」と書いたのですが、
datetime.combine()
でも同様の問題が起こりました。
以下のように、日本のタイムゾーンが +9:19
になってしまうのです。
1 2 3 4 5 6 | from datetime import datetime, date, time import pytz d = date( 2018 , 11 , 1 ) datetime.combine(d, time(), tzinfo = pytz.timezone( 'Asia/Tokyo' )) # 2018-11-01 00:00:00+09:19 |
コンストラクタと同様、一度 native で作成してから aware に変換するのが良さそうです。
4 5 6 7 | d = date( 2018 , 11 , 1 ) dt = datetime.combine(d, time()) pytz.timezone( 'Asia/Tokyo' ).localize(dt) # 2018-11-01 00:00:00+09:00 |
0 件のコメント:
コメントを投稿