python的datetime.strptime_Python strptime()和时区?

返回与Date_String对应的日期时间,按格式解析。这相当于datetime(*(time.strptime(date_string, format)[0:6])).

看到了[0:6]?这会让你(year, month, day, hour, minute, second)..没别的了。没有提到时区。

有趣的是,[Win XP SP2,Python2.6,2.7]将您的示例传递给time.strptime不工作,但如果你去掉“%Z”和“EST”,它确实有效。也使用“UTC”或“GMT”代替“EST”工作。“PST”和“mez”不起作用。令人费解。

值得注意的是,在3.2版时已经更新了这一版本,现在相同的文档还声明了以下内容:当向strptime()方法提供%z指令时,将产生一个感知的datetime对象。结果的tzinfo将被设置为一个时区实例。

注意,这不适用于%Z,所以情况很重要。请参见以下示例:

In [1]: from datetime import datetime

In [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: None

In [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


版权声明:本文为weixin_39889544原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。