Python 如何从给定城市中的给定日期和时间获取unix历元时间戳(以秒为单位)?

Python 如何从给定城市中的给定日期和时间获取unix历元时间戳(以秒为单位)?,python,datetime,timezone,python-datetime,pytz,Python,Datetime,Timezone,Python Datetime,Pytz,我正在尝试获取以下纽约日期和时间的相应Epoch Unix时间戳(以秒为单位): 2020-09-25 09:30 New York Time. 根据相关文件,该文件要求: Conversion results (1601040600) 1601040600 converts to Friday September 25, 2020 09:30:00 (am) in time zone America/New York (EDT) 这就是我尝试过的: 导入日期时间 进口皮茨 ​ et=pyt

我正在尝试获取以下纽约日期和时间的相应Epoch Unix时间戳(以秒为单位):

2020-09-25 09:30 New York Time.
根据相关文件,该文件要求:

Conversion results (1601040600)
1601040600 converts to Friday September 25, 2020 09:30:00 (am) in time zone America/New York (EDT)
这就是我尝试过的:

导入日期时间
进口皮茨
​
et=pytz.时区(“美国/纽约”)
​
mydt=datetime.datetime(美国东部时间2020,9,25,9,30,0,0)
​myepoch=int(mydt.timestamp())
​
打印('2020-09-25 09:30东部时间:',myepoch)
​    ​
>>>输出
美国东部时间2020-09-25 09:30时代:1601043960
​
因此它给出了
1601043960
,而不是
1601040600
。为什么以及应该做什么来获得正确的值


注:该解决方案适用于任何日期,因此它必须自动处理EST/EDT夏令时。

似乎解决方案如下:

导入日期时间
进口皮茨
​
et=pytz.时区(“美国/纽约”)
​
mydt=et.localize(datetime.datetime(2020,9,25,9,30,0,0))
​myepoch=int(mydt.timestamp())
​
打印('2020-09-25 09:30东部时间:',myepoch)
​    ​
>>>输出
2020-09-25 09:30东部时间:1601040600

请参阅和oh,了解如果不本地化(LMT…;-)为什么会得到无效的时间戳如果您有权访问地理数据库(例如OSM/NAMMENTM),您甚至可以使用查找城市坐标,使用获取该坐标的时区,然后获取当地时间。