如何使用Python验证特定的日期和时间格式

时间:2013-08-30 18:24:48

标签: python datetime format

我正在编写一个程序来验证XML文件的各个部分。我想验证的一点是日期时间格式。我已经在论坛上阅读了有关使用time.strptime()的内容,但这些示例对我来说并不是很有用,而且有点超过我的专业知识。任何人都有任何想法如何验证以下内容。这是日期和时间必须的格式。

2/26/2009 3:00 PM

我确信有一些内置的东西很容易,但我找不到。非常感谢你以前经营过并提出建议。

4 个答案:

答案 0 :(得分:20)

是的,您可以使用datetime.strptime()

from datetime import datetime


def validate_date(d):
    try:
        datetime.strptime(d, '%m/%d/%Y %I:%M %p')
        return True
    except ValueError:
        return False


print validate_date('2/26/2009 3:00 PM')  # prints True
print validate_date('2/26/2009 13:00 PM')  # prints false
print validate_date('2/26/2009')  # prints False
print validate_date("Should I use regex for validating dates in Python?")  # prints False

答案 1 :(得分:3)

您就是这样做的:

    from datetime import datetime

    def validate(datetime_string):
        try:
            return datetime.strptime(datetime_string,"%m/%d/%Y %I:%M %p")
        except ValueError:
            return False

答案 2 :(得分:1)

import datetime
parsed = datetime.datetime.strptime("2/26/2009 3:00 PM", r'%m/%d/%Y %H:%M %p')
iso_formatted = parsed.isoformat()
print(iso_formatted)

答案 3 :(得分:0)

您可以将locale moduletime.strptime()结合使用,以确保日期/时间符合正确的顺序(月,日,年等)。或者,你可以做简单的正则表达式...

pattern = re.compile(r'\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{2} (AM|PM)') ......我不是一个正则表达式的职业选手,可能有更好的模式。

您还可以使用datetime模块创建一个具有区域设置常量的新日期时间对象,并将其转换为正确的类型(日,月,年)。

祝你好运!