今天做服务器日志的数据处理,格式如"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这里的坑,写篇短文记录一下。