我有以下字符串:
27/02/2019
在程序中众所周知,这些日期对应于纽约时区,我想获取与以下日期对应的时间戳:
27/02/2019 00:00 US/Eastern
我尝试过:
import datetime
import pytz
exchange_tz = pytz.timezone('US/Eastern')
_period1 = datetime.datetime(2019,2,27)
_period1_localized = exchange_tz.localize(_period1)
_period1_ts = int((_period1_localized - datetime.datetime(1970, 1, 1, tzinfo=exchange_tz)).total_seconds())
>>> _period1_ts
1551225600
但这给出了与以下内容相对应的时间戳:
27/02/2019 00:00 UTC
使用该服务,我检查了1551225600
时间戳是否对应于27/02/2019 00:00 UTC
而不是27/02/2019 00:00 US/Eastern
:
https://www.epochconverter.com/
我在做什么错了?
答案 0 :(得分:1)
以防万一,可以发现错误位于此处:
_period1_ts = int((_period1_localized - datetime.datetime(1970, 1, 1, tzinfo=exchange_tz)).total_seconds())
它将ETCCH时间使用UTC时区:
_period1_ts = int((_period1_localized - datetime.datetime(1970, 1, 1, tzinfo=pytz.utc)).total_seconds())
通过这样做,您将获得1551243600
作为时间戳,它对应于Wednesday, 27 February 2019 05:00:00 UTC
,实际上是27/02/2019 00:00 US/Eastern time
上述经过更正的代码可用于从本地化的日期时间获取时间戳。