如何从给定城市的给定日期和时间获得以秒为单位的unix epoch时间戳



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

2020-09-25 09:30 New York Time.

根据https://www.epochconverter.com/timezones?q=1601040600&tz=美国%2New_York对应:

Conversion results (1601040600)
1601040600 converts to Friday September 25, 2020 09:30:00 (am) in time zone America/New York (EDT)

这就是我尝试过的:

import datetime
import pytz
​
et = pytz.timezone('America/New_York')
​
mydt = datetime.datetime(2020,9,25,9,30,0,0,et)
​myepoch = int(mydt.timestamp())
​
print('2020-09-25 09:30 ET Epoch: ', myepoch)
​    ​
>>> OUTPUT
2020-09-25 09:30 ET Epoch:  1601043960
​

因此,它给出了1601043960而不是1601040600。为什么以及应该做什么来获得正确的价值?

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

似乎解决方案是这样的:

import datetime
import pytz
​
et = pytz.timezone('America/New_York')
​
mydt = et.localize(datetime.datetime(2020,9,25,9,30,0,0))
​myepoch = int(mydt.timestamp())
​
print('2020-09-25 09:30 ET Epoch: ', myepoch)
​    ​
>>> OUTPUT
2020-09-25 09:30 ET Epoch:  1601040600

最新更新