此问题已经在这里有了答案:
我有一个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
我将如何做?
我相信您正在寻找的是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'