我有下面的字符串"2017-03-30 08:25:00CET"
,我想把它转换成一个支持datetime-tz的对象。在
根据this SO question,在python3.2中,只使用datetime
模块就可以完成。另外,从documentation来看
%z | UTC offset in the form +HHMM or -HHMM (empty string if the object is naive). | (empty), +0000, -0400, +1030 %Z | Time zone name (empty string if the object is naive). | (empty), UTC, EST, CST
所以我试试下面的方法
datetime.strptime(dep_dt, '%Y-%m-%d %H:%M:%S%Z')
我没有得到任何错误,但是我得到的对象不是tz感知的
^{pr2}$另一方面,如果我将字符串转换为"2017-03-30 08:25:00+0200"
,然后将其转换为具有
datetime.strptime(dep_dt, '%Y-%m-%d %H:%M:%S%z')
我确实知道时间:
datetime.datetime(2017, 3, 30, 8, 25, tzinfo=datetime.timezone(datetime.timedelta(0, 7200)))
有什么想法可以解释为什么它与%z
一起工作,而不能与{
从tzinfo提供的信息来看,
%Z
的工作方式与输入"UTC"
的字符串不同,它将返回一个带有正确时区的datetime实例。在pytz为您的问题提供了一个可能的解决方案。但是,文档中说,不能保证您的时区会被datetime识别,因此建议您尽可能长时间地使用UTC。在
使用
pytz
的解决方案:输出:
^{pr2}$相关问题 更多 >
编程相关推荐