如何从给定城市的给定日期和时间获取以秒为单位的 unix 纪元时间戳?
How can you get the unix epoch timestamp in seconds from a given date and time in a given city?
我正在尝试为以下纽约日期和时间获取相应的 Epoch Unix 时间戳(以秒为单位):
2020-09-25 09:30 New York Time.
根据 https://www.epochconverter.com/timezones?q=1601040600&tz=America%2FNew_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
我正在尝试为以下纽约日期和时间获取相应的 Epoch Unix 时间戳(以秒为单位):
2020-09-25 09:30 New York Time.
根据 https://www.epochconverter.com/timezones?q=1601040600&tz=America%2FNew_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