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

参见英文答案 > How do I parse an ISO 8601-formatted date?                                    25个
我正在以“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])

我无法找到一种“更清洁”的方式来做到这一点.有吗?

解决方法:

我更喜欢使用dateutil库来进行时区处理和一般的固态日期解析.如果您要获得ISO 8601字符串,例如:2010-05-08T23:41:54.000Z,您可以通过strptime解析它,特别是如果您事先不知道时区是否包含在内. pyiso8601有一些问题(检查他们的跟踪器),我在使用过程中遇到过,并且在几年内没有更新.相比之下,dateutil一直活跃并为我工作:

import dateutil.parser
yourdate = dateutil.parser.parse(datestring)
上一篇:java – ISO 8601 Android中的字符串到日期/时间对象


下一篇:python – 如何解析ISO 8601格式的日期?