如何在特定时区创建Python `datetime`?

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

输入:

import pytz
from datetime import datetime as dt
targettz = pytz.timezone('America/New_York')
d1 = dt(2024, 1, 1, 7, 40, 0, tzinfo=targettz)
d1.isoformat()

输出:

'2024-01-01T07:40:00-04:56'

为什么

'-04:56'
而不是
'-04:00'

python python-3.x
1个回答
0
投票

正如 @MT0 所提到的,使用

zoneinfo
可以正常工作:

>>> dt(2024, 1, 1, 7, 40, 0, tzinfo=pytz.timezone('America/New_York')).isoformat()
'2024-01-01T07:40:00-04:56'
>>> dt(2024, 1, 1, 7, 40, 0, tzinfo=zoneinfo.ZoneInfo('America/New_York')).isoformat()
'2024-01-01T07:40:00-05:00'
>>> dt(2024, 10, 10, 7, 40, 0, tzinfo=zoneinfo.ZoneInfo('America/New_York')).isoformat()
'2024-10-10T07:40:00-04:00'

一月份,纽约州采用冬季时间,即 UTC-5,因此偏移量是正确的。如果您想查看

-04:00
偏移量,请将日期更改为遵守 DST 的日期,例如 10 月 10 日。

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