【发布时间】:2019-07-21 14:08:12
【问题描述】:
我有以下字符串:
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/
我做错了什么?
【问题讨论】:
-
如何将时间戳转换为显示的日期?我们需要一个minimal reproducible example。
-
我得到 1551225600,据我所知,它对应于 27/02/2019 00:00 UTC 时间,而不是 27/02/2019 00:00 美国/东部时间。这是最小的、完整的和可验证的。
-
我在该网站上没有看到可以指定“人类日期”应转换为的特定时区的任何地方 - 所以我不同意这是用于验证的权威测试.
-
时间戳是 UTC - 据我所知 - 如果您输入由网站中的代码生成的时间戳,您将获得问题中所述的带有时区的时间戳。无论如何,我自己发现了这个问题。我确信有更多“权威”的方法可以将时间戳转换为基于时区的人类可读日期。随意贡献一个。
标签: python python-2.7 datetime timestamp pytz