我从文本文件中读取时间戳。这些时间戳采用UTC-4格式。我需要将它们转换为美国/东方。
import datetime
datetime_utc4 = datetime.datetime.strptime("12/31/2012 16:15", "%m/%d/%Y %H:%M")如何将其转换为美国/东方?单行回答是最好的。
注:我最初的问题是美国东部夏令时。但这并没有改变问题的本质,即如何从一个时区到另一个时区。通过一些阅读(以下评论),我猜python (特别是pytz)并没有将EST和EDT作为单独的时区,而是作为美国/东方的两种风格。但这只是一个实现细节。通常将美国东部夏令时和美国东部夏令时称为两个不同的时区,参见例如here。
发布于 2013-07-09 09:24:26
根据您的更新和评论,我现在了解到您有固定在UTC-4的数据,您希望更正此数据,使其在美国东部时间有效,包括适当的EST/EDT。下面是如何使用pytz来实现这一点。
from datetime import datetime
import pytz
dt = datetime.strptime("12/31/2012 16:15", "%m/%d/%Y %H:%M") \
.replace(tzinfo = pytz.FixedOffset(-240)) \
.astimezone(pytz.timezone('America/New_York'))请注意,我使用的是America/New_York时区id。这是最正确的标识符形式。您可以改用US/Eastern,它可以很好地工作,但请注意,这只是一个别名,它只是为了向后兼容。
https://stackoverflow.com/questions/17535670
复制相似问题