1

私はかなり長い間回答を読んできましたが、実際に結果を出すことができませんでした。

次のコードがあります。

>>>from datetime import datetime
>>>a = '2013-08-23T23:37:38+0000'
>>>dt = datetime.strptime(a,'%Y-%m-%dT%H:%M:%S+0000')
>>>print   dt.date()
2013-08-23
>>>print   dt.time()
23:37:38

a私たちが中央ヨーロッパに住んでいることを考えると、この結果を出力する最も簡単な方法は何ですか (もちろん不明であると仮定します)。したがって、「夏時間対応」でもある必要があります。

冬に:

2013-08-24
00:37:38

夏に:

2013-08-24
01:37:38

デフォルトのライブラリのみが必要な場合、それは素晴らしいことです。


もう少し情報

質問の後、図書館に飛び込みました。上記の 3 行目は次のようにする方がよいでしょう: dt = datetime.strptime(a,'%Y-%m-%dT%H:%M:%S%z'). ただし、2.7.5 python (重要な場合は OS X) でバグが発生し、%z. バージョンの変更に問題がある場合は、これを無視してください。もちろん、2つの回答で言及されているのstrptime()は単純なレベルであるdateutil.parserため、上記のコードの代わりに使用することをお勧めします。

4

2 に答える 2

3

たとえば、便利なdateutilパッケージとpytzパッケージを使用して、パリのタイムゾーンに変換できます

from dateutil import parser
import pytz
FR = pytz.timezone('Europe/Paris') # there is the summer offset changing in this zone
date = parser.parse("2013-08-23T23:37:38+0000")
datefr = date.astimezone(FR)
于 2013-08-23T11:34:04.237 に答える
2

pytzdateutilを使用した例を次に示します。

from dateutil import parser
import pytz


date = parser.parse('2013-08-23T23:37:38+0000')

CET = pytz.timezone('CET')
date = date.astimezone(CET)

print date.date()  # prints 2013-08-24
print date.time()  # prints 01:37:38
于 2013-08-23T11:34:18.727 に答える