解析字符串日期在python
我很新的Python的。我有以下两个字符串:
Mon, 29 Oct 2012 13:07:07 GMT
2012-10-29 12:57:08
我想有可能是在Python提供任何日期解析LIB它可以完成上述两个字符串解析到这样的事情:
2012-10-29 12:57:08
这样我可以比较他们。请注意,比较应该能够产生像整数比较那样的结果。像1
小于2
,那么以同样的方式2012-10-29 12:57:08
比2012-10-29 13:57:08
少是否有任何容易在Python这样做呢?
在此先感谢。
使用dateutil
module一般日期解析:
>>> from dateutil.parser import parse
>>> parse('Mon, 29 Oct 2012 13:07:07 GMT')
datetime.datetime(2012, 10, 29, 13, 7, 7, tzinfo=tzutc())
>>> parse('2012-10-29 12:57:08')
datetime.datetime(2012, 10, 29, 12, 57, 8)
datetime.datetime
对象可以以各种方式进行比较。
如果你知道每个日期字符串的精确格式进行解析,你也可以做解析更明确地使用datetime.datetime.strptime()
method:
>>> import datetime
>>> datetime.datetime.strptime('Mon, 29 Oct 2012 13:07:07 GMT', '%a, %d %b %Y %H:%M:%S %Z')
datetime.datetime(2012, 10, 29, 13, 7, 7)
然而要注意的是方法忽略时区!
+1这是有效的。但是,如何比较两个结果以找出哪一个更小或更大? – sriram
@GroovyUser:和其他值一样:'dt1
是的,time.strptime
可以将文本转换为日期表示。从那里你可以使用strftime
打印它你喜欢的方式。
>>> a = '2012-10-29 12:57:08'
>>> time.strptime(a, '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=29, tm_hour=12, tm_min=57, tm_sec=8, tm_wday=0, tm_yday=303, tm_isdst=-1)
>>> b = 'Mon, 29 Oct 2012 13:07:07 GMT'
>>> time.strptime(b, '%a, %d %b %Y %H:%M:%S %Z')
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=29, tm_hour=13, tm_min=7, tm_sec=7, tm_wday=0, tm_yday=303, tm_isdst=0)
在Python中datetime
模块,其strptime
功能(串解析),能做到这一点。
例如,你可以使用函数如下:
somestring = '2004-03-13T03:00:00Z'
result = datetime.datetime.strptime(somestring, '%Y-%m-%dT%H:%M:%SZ')
文档here。
请参阅:http://*.com/questions/2265357/parse-date-and-format-it-using-python。这是这个问题的重复,这反过来确定多个其他重复 –