dateutil.parser - 用点分隔小时和分钟
dateutil.parser - separate hours and minutes with dot
我使用 dateutil.parser.parse
函数来识别用户输入的日期。通常小时和分钟由双点分隔,但有时用户输入类似 6.30pm
的内容,它会被解析为 18:00。所以会议纪要被删掉了。
>>> dateutil.parser.parse ('6.30pm')
datetime.datetime(2019, 5, 14, 18, 0)
有没有办法将点指定为合法的分隔符,或者如果用户使用了错误的分隔符则抛出 ValueError
?我想至少向用户显示一条错误消息,而不仅仅是处理错误的识别日期。
在解析操作之前做一点替换怎么样,比如:
import dateutil.parser
import re
def parse(timestr):
timestr = re.sub(r"(\d{1,2})\.(\d{2})(\D*)$", r":", 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
我使用 dateutil.parser.parse
函数来识别用户输入的日期。通常小时和分钟由双点分隔,但有时用户输入类似 6.30pm
的内容,它会被解析为 18:00。所以会议纪要被删掉了。
>>> dateutil.parser.parse ('6.30pm')
datetime.datetime(2019, 5, 14, 18, 0)
有没有办法将点指定为合法的分隔符,或者如果用户使用了错误的分隔符则抛出 ValueError
?我想至少向用户显示一条错误消息,而不仅仅是处理错误的识别日期。
在解析操作之前做一点替换怎么样,比如:
import dateutil.parser
import re
def parse(timestr):
timestr = re.sub(r"(\d{1,2})\.(\d{2})(\D*)$", r":", 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