2014-01-16 393 views
12

我想将unicode对象转换为datetime对象。将Unicode转换为datetime正确格式

我通过阅读文档:http://docs.python.org/2/library/time.html#time.strptime

,并试图

datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%SZ') 

,但我得到的错误信息ValueError: time data '2014-01-15T01:35:30.314Z' does not match format '%Y-%m-%dT%H:%M:%SZ'

对什么是正确的格式任何反馈?

我很欣赏时间和专业知识。

+0

你读错文档。尽管'time.strptime'和'datetime.datetime.strptime'显然是_similar_函数,它们(如2.6+以上)完全分开实现,并且具有不同的列表以便处理。 ('time'只是调用你的平台的C库;'datetime'手动处理额外的格式指令,即使你的平台没有。) – abarnert

回答

25

可以解析微秒:

from datetime import datetime 
date_posted = '2014-01-15T01:35:30.314Z' 
datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%S.%fZ') 
+0

我认为如果平台不仅仅是手动处理'%f'增加了3.1+,但它看起来也回到了2.6。尼斯。 – abarnert

9

一种选择是让dateutil做的工作:

>>> from dateutil import parser 
>>> parser.parse('2014-01-15T01:35:30.314Z') 
datetime.datetime(2014, 1, 15, 1, 35, 30, 314000, tzinfo=tzutc())