以 python 中的特定格式解析日期

Parse date with specific format in python

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

     Monday, April 1st

我试过了

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

但显然它会从 "Monday" 中删除 "nd" 并导致异常

谢谢

不替换。使用 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)

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

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

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

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

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