pytz
ライブラリを使用したくないため、私が作業しているプロジェクトでは依存関係を導入するために書類作成が必要です。私が第三者の図書館なしでこれを達成できるなら、私はもっと幸せになるでしょう。日時オブジェクトをCESTタイムゾーンとUTCタイムゾーンの間で変換する方法
日付が夏時間に設定されている場合は、CETとUTCの間で日付を変換する際に問題が発生しています。
>>> print from_cet_to_utc(year=2017, month=7, day=24, hour=10, minute=30)
2017-07-24T09:30Z
2017-07-24T08:30Z # expected
CETはUTCより1時間遅れ、夏時間は2時間先です。だから私は真夏の真中の10:30を実際には8:30 UTCにすると期待しています。
機能は次のとおりです。
from datetime import datetime, tzinfo, timedelta
def from_cet_to_utc(year, month, day, hour, minute):
cet = datetime(year, month, day, hour, minute, tzinfo=CET())
utc = cet.astimezone(tz=UTC())
return '{:%Y-%m-%d:T%H:%MZ}'.format(utc)
私は2つのタイムゾーン情報オブジェクトを使用します。
class CET(tzinfo):
def utcoffset(self, dt):
return timedelta(hours=1)
def dst(self, dt):
return timedelta(hours=2)
class UTC(tzinfo):
def utcoffset(self, dt):
return timedelta(0)
def dst(self, dt):
return timedelta(0)
pytzのアップデートについてのあなたの意見に答えるために、IANAのリリースから生成されています。 IANA 2017b => pytz 2017.2。 Stuart Bishopはそれらを保守し、ここにpypiに公開しています。https://pypi.python.org/pypi/pytz#downloads –
@MattJohnsonこの情報で回答を更新しました。ありがとうございます! –
あなたとSergeyの答えはとても役に立ちました。私はあなたが私が本当に専門家に任せておくべきだと私に確信させるために一番の努力をしたと思います。私たちの解決策は、入力としてUTC時間を要求することであり、我々の部分では変換は必要ありません(c: –