7

重要なトラッカー API を介して、「2012/06/05 17:42:29 CEST」のようなフォーマットされた日付文字列を受信して​​います。

この文字列を UTC 日時オブジェクトに変換したいのですが、python-dateutil がそのタイムゾーンを認識していないようで、pytz もそれを認識していません。

文字列の CEST を CET に置き換えるのが最善の策だと思いますが、これは非常に間違っているように感じます。夏時間文字列を解析して、見つからなかった UTC 日時オブジェクトにする他の方法はありますか?

pytz.timezone('CEST')
# -> pytz.exceptions.UnknownTimeZoneError: 'CEST'
dateutil.parser.parse("2012/06/05 17:42:29 CEST")
# -> datetime.datetime(2012, 6, 5, 17, 42, 29)

編集:対応するタイムゾーンも現在夏時間であるため、1時間を差し引くことは完全に誤りであるともう一度考えた後、解析の問題は依然として残っています

4

1 に答える 1

10

CEST実際のタイムゾーンはありません。Europe/Parisお住まいの地域に応じて、Europe/BerlinまたはEurope/Prague(または別のもの) を使用します。

>>> pytz.country_timezones('de')
[u'Europe/Berlin']

>>> pytz.country_timezones('fr')
[u'Europe/Paris']

それらは(現在)同一であり、すべてCEST夏に言及しています。

>>> dateutil.parser.parse("2012/06/05 17:42:29 CEST").astimezone(pytz.utc)
datetime.datetime(2012, 6, 5, 15, 42, 29, tzinfo=<UTC>)
于 2012-06-06T12:15:03.920 に答える