如何将日期字符串转换为指定时区中的日期时间对象

时间:2015-06-04 07:41:49

标签: python datetime python-3.x python-3.4

我可以使用以下内容将YYYY-MM-DD格式的给定日期字符串转换为datetime对象:

from datetime import datetime
dt = datetime.strptime(date_str, '%Y-%m-%d')

但是,默认使用当前机器的时区。

是否可以在转换中指定特定时区(例如UTC,PST等),以便获取的datetime对象位于该时区内。

我试图在Python 3.4.3中这样做。

1 个答案:

答案 0 :(得分:3)

仅使用Python的标准库是不可能的。

要获得完全的灵活性,请安装python-dateutilpytz并运行:

date_str = '2015-01-01'
dt = pytz.timezone('Europe/London').localize(dateutil.parser.parse(date_str))

这为您提供了欧洲/伦敦时区的日期时间。

如果您只需要解析'%Y-%m-%d'个字符串,那么您只需要pytz

from datetime import datetime
naive_dt = datetime.strptime(date_str, '%Y-%m-%d')
dt = pytz.timezone('Europe/London').localize(naive_dt)