如何验证字符串是否为正确的日期格式

时间:2017-02-22 19:06:11

标签: python validation datetime

我能否知道验证字符串的最佳方法是以下格式。我不确定我应该如何核实房子和(上午或下午)

datestring = 'Feb 22 2017, 1:27:42pm'
print(datetime.strptime('Feb 22 2017, 1:27:42', '%b %d %Y, %H:%m:%S'))

2 个答案:

答案 0 :(得分:1)

您的主要问题实际上%m应为%M。小写m是月份,而不是分钟。 %p会解析'am''pm'。您可能还想将%H更改为%I,因为am / pm的存在意味着12小时而不是24小时:

datestring = 'Feb 22 2017, 1:27:42pm'
datetime.strptime(datestring, '%b %d %Y, %I:%M:%S%p')

datetime对象中的结果,可以用我的语言环境/平台默认值表示为2017-02-22 13:27:42

答案 1 :(得分:0)

使用正则表达式查看条目是否符合您的格式。它会返回一个SRE_Match对象,也不会返回任何内容,因此请在正则表达式上调用bool以返回True/False

>>> datestring = 'Feb 22 2017, 1:27:42pm'
>>> bool(re.match(r'([A-Z][a-z]{2} \d{2} \d{4}, \d:\d{2}:\d{2}[am,pm])', datestring))
    True