Created
August 25, 2017 14:24
-
-
Save a-hisame/85ed049d622f5a88c570c252f6611ff0 to your computer and use it in GitHub Desktop.
pytzの仕様厳格化によって時刻情報なしだとAsia/TokyoがLMT+9:19:00になる場合の対処とか
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
''' | |
日本語の記事とかだと - http://qiita.com/higitune/items/0ca244373d380cf1c060 | |
''' | |
import datetime | |
import pytz | |
# jst は <DstTzInfo 'Asia/Tokyo' LMT+9:19:00 STD> | |
jst = pytz.timezone('Asia/Tokyo') | |
# jst -> utc をやってみるが | |
# 9時間19分前に変換されてしまう | |
bad_utc_dt = datetime.datetime(2017, 8, 25, 9, 0, tzinfo=jst) | |
# datetime.datetime(2017, 8, 24, 23, 41, tzinfo=<UTC>) | |
pytz.utc.normalize(bad_utc_dt) | |
# Timezoneは土地だけで決まらず、その時刻を加味しないと決まらない | |
# そのため、時刻を無理やり与えて +09:00 となる JST を作り出してやる | |
# 西暦1888年以降は +09:00 なので、それ以降の時刻を与えればよい | |
# ref: http://aoyagikouhei.blog8.fc2.com/blog-entry-61.html | |
# datetime.datetime(2017, 8, 25, 9, 0, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>) | |
jstdt = jst.localize(datetime.datetime(2017, 8, 25, 9, 0)) | |
# datetime.datetime(2017, 8, 25, 0, 0, tzinfo=<UTC>) | |
pytz.utc.normalize(jstdt) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment