在Python中将字符串解析为日期

9 浏览
0 Comments

在Python中将字符串解析为日期

这个问题已经有了答案:

可能是重复的:

使用Python解析日期并格式化它?

我刚刚开始学习Python。我有以下两个字符串:

Mon, 29 Oct 2012 13:07:07 GMT
2012-10-29 12:57:08

我希望Python中有任何可以解析以上两个字符串并将其转换为如下格式的日期解析库:

2012-10-29 12:57:08

这样我就可以比较它们了。请注意,比较应该能够产生类似于整数比较的结果。就像1小于2一样,同样十小时2012-10-29 12:57:08小于十一个小时2012-10-29 13:57:08

在Python中有任何简单的方法做到这一点吗?

提前感谢。

admin 更改状态以发布 2023年5月24日
0
0 Comments

是的,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)

0
0 Comments

使用dateutil模块进行通用日期解析:

>>> 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()方法更明确地进行解析:

>>> 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)

但请注意,该方法忽略时区!

0