Python 部分日期解析器函数
Python Partial Date Parser Function
我有一个接受字符串并通过解析器将值转换为日期的函数。
我们称之为日期转换器:
def date_converter(x):
return dateparser.parse(x).dt.date
因此,如果将“2021 年 1 月 21 日”作为字符串,它将变为 2021-01-21
但是,该函数现在需要接收部分日期“21jan”并将其转换为 2021-01(无论日期是什么)。日子无所谓。
我如何设置一个解析器来知道它将接收一年零一个月,假设它接收的只是一个字符串?
以下是我认为您正在寻找的内容:
s = "21jan"
import datetime
d = datetime.datetime.strptime(s, "%y%b").date()
print(d)
输出:
2021-01-01
此解决方案使用非常灵活和宽容的 datetime.parser 模块。这很慢,但非常有用。
import datetime
from dateutil import parser
def date_convertor(x:str)->datetime.date:
#assuming the day of the month is never present
date_string_to_parse = x + "01"
converted_dt = parser.parse(date_string_to_parse,yearfirst=True)
return converted_dt.date()
我有一个接受字符串并通过解析器将值转换为日期的函数。
我们称之为日期转换器:
def date_converter(x):
return dateparser.parse(x).dt.date
因此,如果将“2021 年 1 月 21 日”作为字符串,它将变为 2021-01-21
但是,该函数现在需要接收部分日期“21jan”并将其转换为 2021-01(无论日期是什么)。日子无所谓。
我如何设置一个解析器来知道它将接收一年零一个月,假设它接收的只是一个字符串?
以下是我认为您正在寻找的内容:
s = "21jan"
import datetime
d = datetime.datetime.strptime(s, "%y%b").date()
print(d)
输出:
2021-01-01
此解决方案使用非常灵活和宽容的 datetime.parser 模块。这很慢,但非常有用。
import datetime
from dateutil import parser
def date_convertor(x:str)->datetime.date:
#assuming the day of the month is never present
date_string_to_parse = x + "01"
converted_dt = parser.parse(date_string_to_parse,yearfirst=True)
return converted_dt.date()