我正在编写一个程序来验证 XML 文件的某些部分。我要验证的要点之一是日期时间格式。我已经在论坛上阅读了有关使用的信息,time.strptime()
但是这些示例对我来说并不完全有效,并且超出了我的专业知识。任何人都知道如何验证以下内容。这是日期和时间必须采用的格式。
2/26/2009 3:00 PM
我确信有一些内置的并且非常简单,但我找不到。非常感谢您之前运行过此操作并提出建议。
是的,您可以使用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
这就是你的做法:
from datetime import datetime
def validate(datetime_string):
try:
return datetime.strptime(datetime_string,"%m/%d/%Y %I:%M %p")
except ValueError:
return False
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)
您可以结合使用语言环境模块time.strptime()
来确保日期/时间的顺序正确(月、日、年等)。或者,你可以做简单的正则表达式......
pattern = re.compile(r'\d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{2} (AM|PM)')
...我不是正则表达式专业人士,哈哈,可能有更好的模式。
您还可以使用该datetime
模块并使用区域设置常量创建一个新的日期时间对象,并将其转换为正确的类型(日、月、年)。
祝你好运!