将datetime转换为本地python

时间:2013-08-23 11:29:12

标签: python datetime

我一直在阅读相当多的时间答案,但无法真正推动结果。

我有以下代码:

>>>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的更简单级别,因此可以更好地使用它而不是上面的代码。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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