Python 如何将日期字符串转换为DateTime对象?
我有以下日期:Python 如何将日期字符串转换为DateTime对象?,python,datetime,Python,Datetime,我有以下日期: 2005-08-11T16:34:33Z 我需要知道这是date是在datetime(2009,04,01)之前还是之后,我似乎找不到一种方法可以将该字符串转换为某种有意义的方式,让我将其与datetime(2009,04,01)进行比较。因为该字符串是ISO格式的,它可以直接与您提到的datetime的ISO格式版本进行有意义的比较: >>> s='2005-08-11T16:34:33Z' >>> t=datetime.datetime(
2005-08-11T16:34:33Z
我需要知道这是date是在datetime(2009,04,01)之前还是之后,我似乎找不到一种方法可以将该字符串转换为某种有意义的方式,让我将其与datetime(2009,04,01)进行比较。因为该字符串是ISO格式的,它可以直接与您提到的
datetime
的ISO格式版本进行有意义的比较:
>>> s='2005-08-11T16:34:33Z'
>>> t=datetime.datetime(2009,04,01)
>>> t.isoformat()
'2009-04-01T00:00:00'
>>> s < t
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.datetime to str
>>> s < t.isoformat()
True
>>> z='2009-10-01T18:20:12'
>>> z < t.isoformat()
False
如果知道字符串,只需使用datetime.datetime(年、月、日、小时、分钟、秒)函数。拆分字符串以获取适当的变量,并将其放入以使其成为datetime类型。然后把它和你需要的东西比较一下
或者您也可以按照人们的建议使用iso格式。我建议您看看:
从dateutil.parser导入解析
datetime=parse(“2003年10月11日星期六17:13:46 UTC”)
谢谢你。这就是我一直在做的,但我知道一定有更优雅的东西在那里。而且,亚历克斯提供了它。:)不客气!亚历克斯的绝对是更优雅的解决方案。我对iso格式在我脑海中是如何工作的没有把握,我离开了我的普通电脑去检查。
>>> datetime.datetime.strptime(s, '%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2005, 8, 11, 16, 34, 33)