在Python格式字符串中计算时区偏移量

10 浏览
0 Comments

在Python格式字符串中计算时区偏移量

这个问题已经有了答案

如何在Python中使datetime对象有意识(而不是naive)?

我有一个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

我应该怎么做?

admin 更改状态以发布 2023年5月23日
0
0 Comments

我相信你要找的是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,在文档这里有一个更长的示例,教你如何将这两个函数结合在一起。

0