'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这里的坑,写篇短文记录一下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值