该
datetime模块的文件说:
返回对应于
date_string的
datetime,并根据格式进行解析。等同于
datetime(*(time.strptime(date_string, format)[0:6]))。
看到了
[0:6]吗?那让你
(year, month, day, hour, minute, second)。没有其他的。没有提及时区。
有趣的是,
[Win XP SP2,Python 2.6、2.7] time.strptime无法将示例传递给你,但是如果你去除了
“%Z”和“ EST”,它就可以工作。也可以使用“ UTC”或“ GMT”代替“ EST”。“ PST”和“ MEZ”无效。令人费解。
值得注意的是,此版本已从3.2版开始更新,并且同一文档现在也声明以下内容:
当%z指令提供给
strptime()方法时,将生成一个已知的
datetime对象。结果的
tzinfo将设置为时区实例。
请注意,这不适用于%Z,因此大小写很重要。请参见以下示例:
In [1]: from datetime import datetimeIn [2]: start_time = datetime.strptime('2018-04-18-17-04-30-AEST','%Y-%m-%d-%H-%M-%S-%Z')In [3]: print("TZ NAME: {tz}".format(tz=start_time.tzname()))TZ NAME: NoneIn [4]: start_time = datetime.strptime('2018-04-18-17-04-30-+1000','%Y-%m-%d-%H-%M-%S-%z')In [5]: print("TZ NAME: {tz}".format(tz=start_time.tzname()))TZ NAME: UTC+10:00


