Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将日期字符串转换为DateTime对象?_Python_Datetime - Fatal编程技术网

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)