你将如何解析python中的日期:
Monday, April 1st
我试过
datetime_object = datetime.strptime(date.replace("st","").replace("rd","").replace("th","").replace("nd","").strip(), '%A, %B %d')
但显然它会从“星期一”中删除“nd”并导致异常
感谢
答案 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')