您的位置:首页 > 编程语言 > Python开发

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

2017-11-10 19:26 232 查看
今天做服务器日志的数据处理,格式如
"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 time strptime