dateutil.parser-用点分隔小时和分钟

时间:2019-05-14 09:19:59

标签: python python-dateutil

我使用dateutil.parser.parse功能来识别用户输入的日期。通常,小时和分钟由双点分隔,但有时用户输入的内容类似于6.30pm,其解析为18:00。因此,分钟数刚刚删除。

>>> dateutil.parser.parse ('6.30pm')
datetime.datetime(2019, 5, 14, 18, 0)

如果用户使用了错误的分隔符,是否可以将点指定为合法分隔符或抛出ValueError?我想至少向用户显示一条错误消息,而不仅仅是处理错误的识别日期。

1 个答案:

答案 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