首页 > 解决方案 > 在 Python 中解析日期

问题描述

我有一个来自输入的日期列表,如下所示。

我正在做一个项目,只想从用户输入中接受格式为 1990 年 4 月 1 日或 2003 年 1 月 13 日(取任何月份)格式的日期,以及我不想接受的任何其他日期格式。我正在为如何使用替换或查找功能来实现这些目标而苦苦挣扎?收到该格式后,我想以 22 年 7 月 19 日的格式打印出日期。如果我有正确格式的日期,我使用替换函数来替换空格和逗号,但我将如何取那个月并用它的数值替换它?对于所有这些问题,我很抱歉,我只是卡住了,并且已经为此工作了一段时间。

1990 年 4 月 1 日
1995 年 11 月 2 日22 年
7
月 19 日 2003 年 1 月 13 日

userinput = input("Please enter date")

parsed_date = userinput.replace(" ", "/", 2)
new_parsed_date = parsed_date.replace(',',"")
print(new_parsed_date)

March/1/2019
这是我解析日期时的输出。还有更简单的方法来完成这项任务吗?

标签: pythondateparsingtime

解决方案


你应该看看strptimePythondatetime对象的方法。

基本上你会编写如下所示的代码:

>>> from datetime import datetime
>>> datetime.strptime("January 13, 2003", "%B %d, %Y")
datetime.datetime(2003, 1, 13, 0, 0)

文档strptimehttps ://docs.python.org/3/library/datetime.html#datetime.datetime.strptime


推荐阅读