我从文本文件中读取时间戳。这些时间戳是UTC-4。我需要将它们转换为美国/东方。
import datetime
datetime_utc4 = datetime.datetime.strptime("12/31/2012 16:15", "%m/%d/%Y %H:%M")
如何将其转换为美国/东部?单行答案是最好的。
注意:我原来的问题是EST给EDT。但它并没有改变问题的本质,即如何从一个时区走向另一个时区。经过一些阅读(以下评论)我认为python(特别是pytz)不会将EST和EDT视为单独的时区,而是美国/东方的两种风格。但这是一个实现细节。通常将EST和EDT称为两个不同的时区,例如, here
答案 0 :(得分:4)
根据您的更新和评论,我现在了解您有固定在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
并且它可以正常工作,但要注意这是一个别名,它只是为了向后兼容。