参见英文答案 > 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)