在python中使用特定格式解析日期

时间:2017-09-21 14:54:11

标签: python string datetime datetime-parsing

你将如何解析python中的日期:

     Monday, April 1st

我试过

    datetime_object = datetime.strptime(date.replace("st","").replace("rd","").replace("th","").replace("nd","").strip(), '%A, %B %d')

但显然它会从“星期一”中删除“nd”并导致异常

感谢

3 个答案:

答案 0 :(得分:2)

不要更换。使用str.rstrip从右侧剥离。如果不需要的字符不存在,则返回字符串:

>>> from datetime import datetime
>>> s = "Monday, April 1st"
>>> datetime.strptime(s.rstrip('strndh'), '%A, %B %d')
datetime.datetime(1900, 4, 1, 0, 0)

请注意,此处(即星期一)的日期信息是多余的。

答案 1 :(得分:1)

您可以使用dateutil模块(pip install py-dateutil):

>>> from dateutil import parser
>>> parser.parse("Monday, April 1st")
datetime.datetime(2017, 4, 1, 0, 0)

答案 2 :(得分:0)

此外,如果您的所有字符串都没有相同的长度:

a = "Monday, April 1st"
if not a[-1].isdigit():
    a = a[:-2]
datetime_object = datetime.strptime(a, '%A, %B %d')