猿问

如何将ISO 8601日期时间字符串转换为Pythondatetime对象?

如何将ISO 8601日期时间字符串转换为Pythondatetime对象?

我得到了一个格式为“2009-05-28T16:15:00”的日期时间字符串(我相信这是ISO 8601)。一个hackish选项似乎是使用time.strptime并将元组的前六个元素传递到datetime构造函数中,如下所示:

datetime.datetime(*time.strptime("2007-03-04T21:08:12", "%Y-%m-%dT%H:%M:%S")[:6])

我还没有找到一种“更清洁”的方法来做这件事。有吗?



智慧大石
浏览 2307回答 3
3回答

守候你守候我

我更喜欢使用丁香醇用于时区处理和一般实心日期解析的库。如果您要得到一个ISO 8601字符串,如:2010-05-08T23:41:54.000Z,您将在使用strptime解析该字符串时得到乐趣,特别是当您不知道是否包括时区时。pyiso8601有几个问题(查看它们的跟踪器),我在使用过程中遇到了这些问题,而且它已经有几年没有更新过了。相比之下,dateutil一直在积极地为我工作:import dateutil.parser yourdate = dateutil.parser.parse(datestring)

HUX布斯

使用Python 3而没有外部库:datetime.datetime.strptime('2019-01-04T16:41:24+0200', "%Y-%m-%dT%H:%M:%S%z")Python 2不支持%z格式化说明符,所以最好在任何地方显式地使用祖鲁时间(如果可能的话):datetime.datetime.strptime("2007-03-04T21:08:12Z", "%Y-%m-%dT%H:%M:%SZ")
随时随地看视频慕课网APP

相关分类

Python
我要回答