如何在Python中进行日期验证?
在本文中,我们将展示如何使用python进行日期验证。现在我们看到2种方法来完成这个任务−
- 使用datetime.strptime()函数
-
使用dateutil.parser.parse()函数
方法1:使用datetime.strptime()函数
算法(步骤)
以下是要执行所需任务的算法/步骤−
- 使用import关键字导入datetime(用于处理日期和时间)模块。
-
将日期作为字符串输入并创建一个变量来存储它。
-
输入日期格式作为字符串并创建另一个变量来存储它。
-
使用try-except语句块处理异常(在Python中,Try和Except语句用于处理这些错误。如果程序不包含错误,则try块用于检查某些代码中的错误,即try块中的代码将执行。另一方面,如果前面的try块遇到错误,则except块内的代码将被执行)
-
在try块内,将给定日期字符串和日期格式作为参数传递到datetime模块的datetime类的strptime()函数(将字符串格式的时间戳格式化为日期时间对象)中,并将结果保存在变量中。
-
在try块内打印上述结果。如果没有错误,则在此处打印格式化日期。
-
如果上述日期验证失败,则将执行except块。在except块内,如果出现ValueError,则打印适当的文本。
例子
以下程序使用strptime()函数返回给定日期是否有效−
输出
在执行上述程序时,将生成以下输出−
您可以使用许多其他指令来解析日期。以下是由strptime()格式字符串支持的指令。
指令 | 意义 |
---|---|
%a | 区域设置中的缩写星期名。 |
%A | 区域设置中星期的完整名称。 |
%b | 区域设置中的缩写月份名。 |
%B | 区域设置中月份的完整名称。 |
%c | 区域设置的适当日期和时间表示。 |
%d | 月份中的一天,二位十进制数[01,31]。 |
%H | 小时(24小时制)的十进制数[00,23]。 |
%I | 小时(12小时制)的十进制数[01,12]。 |
%j | 年份中的一天,三位十进制数[001,366]。 |
%m | 十进制数,表示一年中的月份[01,12]。 |
%M | 十进制数,表示一小时中的分钟[00,59]。 |
%p | 区域设置中AM或PM的等效表示。 |
%S | 十进制数,表示一分钟中的秒数[00,61]。 |
%U | 小时(24小时制)的十进制数[00,23]。 |
%w | 十进制数,表示一周中的星期[0(星期日),6]。 |
%W | 十进制数,表示一周中的星期[00,53](星期一作为一周的第一天)。新年初的第一个星期一以前的所有天被认为是第0周。 |
%x | 区域设置的适当日期表示。 |
%X | 区域设置的适当时间表示。 |
%y | 十进制数,表示没有世纪的年份[00,99]。 |
%Y | 十进制数,表示有世纪的年份。 |
%Z | 时区名称(如果不存在时区,则没有字符)。 |
%% | 字符“%”本身。 |
方法二:使用dateutil.parser.parse()函数
在这种方法中,我们使用一个独立的内置函数, dateutil.parser ,以检查已验证的格式。这不需要格式来验证日期。
算法(步骤)
- 使用 import 关键字,从日期工具模块导入 parser 。
- 输入日期作为字符串,并创建一个变量以存储它。
-
打印给定的输入日期。
-
使用 try-except 块来处理异常。在 try 块内,使用parse()函数解析给定的日期字符串。如果给定的日期正确,则打印true。
-
如果日期不正确/无效,则执行except块代码。如果给定日期的解析错误,则会引发ValueError,因此except块处理此错误,并打印一些文本以表明给定日期未经验证。
示例
以下程序使用parse()函数返回给定日期是否有效−
输出
在执行上述程序时,将生成以下输出 −
结论
本文介绍了如何使用两种不同的方法验证给定日期。我们还学习了strptime()函数支持的其他指令。