'z' is a bad directive Python无法解析带时区的时间戳字符串

今天做服务器日志的数据处理,格式如"24/Oct/2017:17:07:05 +0800"。然后查找到python官网datetime格式解析文档,美滋滋写了代码实验一下。

import time
time.strptime("24/Oct/2017:17:07:05 +0800", "%d/%b/%Y:%H:%M:%S %Z")

但是会报错'z' is a bad directive in format '%d/%b/%Y:%H:%M:%S %Z'。Google一搜,发现stackoverflow早有问题z is a bad directive。回答中提到

You can’t use %z in strptime because Python has no classes to represent timezones (you are supposed to implement your own, or better yet include some other libraries).

原来Python的时间解析不支持带时区的解析,那怎么办,索性不解析了,只保留当前的时刻就好,反正我不需要做全球的日志统计。

import time
time.strptime("24/Oct/2017:17:07:05 +0800".split()[0], "%d/%b/%Y:%H:%M:%S")

Python这里的坑,写篇短文记录一下。

你可能感兴趣的:(Python环境)