为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

智慧大石 2019-06-24 10:41:32
如何将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])我还没有找到一种“更清洁”的方法来做这件事。有吗?
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

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

import dateutil.parser
yourdate = dateutil.parser.parse(datestring)


查看完整回答
反对 回复 2019-06-24
?
HUX布斯

TA贡献1876条经验 获得超6个赞

使用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")


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 2306 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信