我使用dateutil.parser.parse
功能来识别用户输入的日期。通常,小时和分钟由双点分隔,但有时用户输入的内容类似于6.30pm
,其解析为18:00。因此,分钟数刚刚删除。
>>> dateutil.parser.parse ('6.30pm')
datetime.datetime(2019, 5, 14, 18, 0)
如果用户使用了错误的分隔符,是否可以将点指定为合法分隔符或抛出ValueError
?我想至少向用户显示一条错误消息,而不仅仅是处理错误的识别日期。
答案 0 :(得分:1)
在解析操作之前进行一些替换,例如:
import dateutil.parser
import re
def parse(timestr):
timestr = re.sub(r"(\d{1,2})\.(\d{2})(\D*)$", r"\1:\2\3", timestr)
return dateutil.parser.parse(timestr)
print(parse('6.30pm')) # >> 2019-05-14 18:30:00
print(parse('12:06.30')) # >> 2019-05-14 12:06:30
print(parse('2018-01-01 12:06:05.123')) # >> 2018-01-01 12:06:05.123000