我可以使用以下代码将给定格式为YYYY-MM-DD
的日期字符串转换为datetime
对象:
from datetime import datetime
dt = datetime.strptime(date_str, '%Y-%m-%d')
然而,默认情况下,它使用当前机器的时区。
是否有一种方法可以指定特定的时区(例如UTC,PST等)进行转换,以便获得的datetime
对象在该时区中。
我正在尝试在Python 3.4.3中实现此目标。
我可以使用以下代码将给定格式为YYYY-MM-DD
的日期字符串转换为datetime
对象:
from datetime import datetime
dt = datetime.strptime(date_str, '%Y-%m-%d')
然而,默认情况下,它使用当前机器的时区。
是否有一种方法可以指定特定的时区(例如UTC,PST等)进行转换,以便获得的datetime
对象在该时区中。
我正在尝试在Python 3.4.3中实现此目标。
仅使用Python标准库无法实现此操作。
为了获得完全的灵活性,请安装python-dateutil
和pytz
并运行:
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)
pytz
,但我想知道Python 3.4中是否有内置的东西可以帮助解决这个问题。 - skyorkTZ
环境变量并调用time.tzset()
来更改你的本地时区。否则,你需要使用第三方模块如pytz
。还有旧的PEP 0431--时区支持改进;目前尚不清楚它是否将被包含在Python 3.5中。 - jfs