如何在Python中将UTC-4转换为US / Eastern?

时间:2013-07-08 20:44:34

标签: python time timezone

我从文本文件中读取时间戳。这些时间戳是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

1 个答案:

答案 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并且它可以正常工作,但要注意这是一个别名,它只是为了向后兼容。