如何在Python中将带z的Unix时间戳转换为日期时间
我想知道怎么把这个时间戳 '20141031131429Z' 转换成 2014年10月31日,在Python中该怎么做。
>>>datetime.datetime.strptime( "20141031131429Z", "%Y%m%d%H%M%S%Z" )
上面的代码给我报了一个错误,错误信息如下:
ValueError: time data '20141031131429Z' does not match format '%Y%m%d%H%M%S%Z'
2 个回答
0
这不是一个Unix时间戳(Unix时间戳是用%s在strftime/strptime中解析的)——它看起来像是iCalendar格式#2(RFC 2445)。像iCalendar这样的模块可以帮助你解析这个格式,而不需要硬编码去指定使用的是哪种格式。
一旦你有了一个日期时间对象,就可以用它来获取任何其他格式:
>>> dt=datetime.datetime.strptime( "20141031131429Z", "%Y%m%d%H%M%SZ" )
>>> dt.strftime('%d %B %Y')
'31 October 2014'
>>> dt.strftime('%x')
'10/31/14'
2
把 Z
前面的 %
去掉:
d = datetime.datetime.strptime("20141031131429Z", "%Y%m%d%H%M%SZ" )
print(d.strftime("%d %B %Y"))
输出结果:
31 October 2014