0

datetime在数据库中有一个 python 对象,它存储在 UTC 时区:

2012-10-24 14:10:00+00:00

我可以将其转换为当地时间,使用

start_localtime = start.replace(tzinfo=tz.gettz('Europe/Zurich'))

start_localtime 现在是:2012-10-24 14:10:00+02:00

从技术上讲,这很好。但我需要时区+00:00,所以小时为 16(+2 小时)。

有没有办法做到这一点?

4

1 回答 1

2

您是否尝试过使用 datetime.astimezone()?

http://docs.python.org/2/library/datetime.html#datetime.datetime.astimezone

我想出了一种使用 pytz 库的方法:http: //pypi.python.org/pypi/pytz/

>>> import pytz
>>> from pytz import timezone
>>> a = datetime.now(timezone("UTC"))
>>> b = a.astimezone(timezone("Europe/Zurich"))
>>> a
datetime.datetime(2012, 12, 12, 10, 39, 20, 158993, tzinfo=<UTC>)
>>> b
datetime.datetime(2012, 12, 12, 11, 39, 20, 158993, tzinfo=<DstTzInfo 'Europe/Zurich' CET+1:00:00 STD>)
>>> b.utcoffset()
datetime.timedelta(0, 3600)
于 2012-12-12T10:18:15.613 回答