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. 如果您在更改版本时遇到问题,如果不是忽略此。当然,这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 回答