5

タイムゾーンの省略形が原因で、UTC 以外の時間の文字列表現を UTC に変換するのに苦労しています。

(更新:タイムゾーンの略語は一意ではない可能性があるようです。そうであれば、おそらくこれも考慮に入れるべきです。

datetutil と pytz を使用してこれを回避する方法を探していましたが、うまくいきませんでした。

提案または回避策をいただければ幸いです。

string = "Jun 20, 4:00PM EDT" 

必要に応じて夏時間を考慮して、それを UTC 時間に変換したいと思います。

更新:経験豊富なユーザーが Q に回答するのに役立つ参考文献がいくつか見つかりました。

基本的に、ソリューションの一部がこれの逆を行っていると想像します。

最終更新 (重要)

dateutil docs examplesから引用。

TZOFFSET ディクショナリを使用して BRST タイムゾーン オフセットを提供する、date コマンドに基づくいくつかの簡単な例。

parse("Thu Sep 25 10:36:28 BRST 2003", tzinfos=TZOFFSETS) datetime.datetime(2003, 9, 25, 10, 36, 28, tzinfo=tzoffset('BRST', -10800))

parse("2003 10:36:28 BRST 25 Sep Thu", tzinfos=TZOFFSETS) datetime.datetime(2003, 9, 25, 10, 36, 28, tzinfo=tzoffset('BRST', -10800))

これを、ここにあるようなライブラリと組み合わせます。そして、あなたはこの問題を解決するでしょう。

4

1 に答える 1

5

Nas Banovの優れた辞書マッピングタイムゾーンの略語をUTCオフセットに使用する:

import dateutil
import pytz

# timezone dictionary built here: https://stackoverflow.com/a/4766400/366335
# tzd = {...}

string = 'Jun 20, 4:00PM EDT'
date = dateutil.parser.parse(string, tzinfos=tzd).astimezone(pytz.utc)
于 2012-06-21T19:03:47.243 に答える