以python格式的字符串计算时区偏移[重复]

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我有一个datetime对象,我需要将其转换为给定的时区并获取该日期的时区偏移量。这是一个例子:

>>> datetime.datetime(2045,11,30, 0,0,0).strftime("%Y-%m-%dT%H:%M:%S")
'2045-11-30T00:00:00'

我想动态添加时区“ America / Chicago”的偏移量,因此,例如,结果如下所示:

'2045-11-30T00:00:00T-06:00' # fluctuates based on DST, cannot be hardcoded

我将如何做?

python timezone
1个回答
1
投票

我相信您正在寻找的是tzinfo。在文档中,有一个工作示例,说明如何工作:

>>> from datetime import tzinfo, timedelta, datetime
>>> class TZ(tzinfo):
...     """A time zone with an arbitrary, constant -06:39 offset."""
...     def utcoffset(self, dt):
...         return timedelta(hours=-6, minutes=-39)
...
>>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ')
'2002-12-25 00:00:00-06:39'
>>> datetime(2009, 11, 27, microsecond=100, tzinfo=TZ()).isoformat()
'2009-11-27T00:00:00.000100-06:39'

对于您的特定示例,结果看起来像:

>>> datetime(2045,11,30, 0,0,0, tzinfo=TZ()).isoformat()
'2045-11-30T00:00:00-06:00'

如果您想将DST偏移量计算为该TZ偏移量,则需要使用dst,并且在文档here中还有一个更长的示例来实现这两个偏移量。

© www.soinside.com 2019 - 2024. All rights reserved.