判断日期的合法性,有两层含义,一是日期格式是否合法,二是格式合法后,其所表示的实际的那一天,是否真实存在!在python中,做这个合法性的判断,so easy!~~

我们需要用到datetime模块中的date。实现对日期合法性的判断,利用的就是python自带的合法性判断机制。

from datetime import date

用date(year,month,day)

创建date对象的时候,python自己就会判断输入日期的合法性,如果不合法会抛出异常。

>>> date(1234,11,1)

datetime.date(1234, 11, 1)

>>> date(2019,10,11)

datetime.date(2019, 10, 11)

>>> date(2019,10,32)

Traceback (most recent call last):

File "", line 1, in

ValueError: day is out of range for month

>>> date(2019,-9,32)

Traceback (most recent call last):

File "", line 1, in

ValueError: month must be in 1..12

>>> date(10000,-9,32)

Traceback (most recent call last):

File "", line 1, in

ValueError: year 10000 is out of range

传入年月日,三个int,date()会自己判断是否合法有效,如果否,抛出ValueError异常。我们可以利用这个机制,自己写一个简单的判断函数:

>>> def isValidDate(year, month, day):

... try:

... date(year, month, day)

... except:

... return False

... else:

... return True

...

这个方法适合所有python3代码,兼容性更好。只是用这个方法可能需要写点代码得到三个int值。

用date.fromisoformat()

原理和上文一样,区别是,fromisoformat函数接收一个字符串参数,而不是int。另一个区别是,这个函数从python3.7才开始有提供。所以,存在一点兼容性的问题。

iso格式的日期,就是:YYYY-MM-DD

>>> def isValidDate(datestr):

... try:

... date.fromisoformat(datestr)

... except:

... return False

... else:

... return True

...

网络上有些同学用python写的判断日期合法性的代码,太复杂了,这些年月日的底层判断,python已经实现了。用本文介绍的方法,应该是最简单的。

-- EOF --

python判断日期_python如何判断日期的合法性?相关推荐

  1. 用python穷举法判断素数_Python如何判断素数

    判断一个给定的正整数是否素数 输入格式: 输入在第一行给出一个正整数n(≤ 10),随后n行,每行给出一个小于1000000 的需要判断的正整数 输出格式: 对每个需要判断的正整数,如果它是素数,则在 ...

  2. python根据月份判断季度_python获取指定日期范围内的每一天,每个月,每季度的方法...

    1.获取所有天,返回一个列表: def getBetweenDay(begin_date): date_list = [] begin_date = datetime.datetime.strptim ...

  3. 学习python时间安排_Python时间和日期学习

    1 #coding=utf-8 2 __author__ = 'Administrator' 3 4 5 #日期和时间模块学习 6 """ 7 Python程序能用很多方 ...

  4. python判断语句_python条件判断语句if elif else使用

    假设网站现在有100个充值用户,现在要给充值1000元以上的大客户返现,那么就需要在程序里进行判断.这就用到了条件判断语句. 一.if语句 1.if语句长相: if条件表达式: 满足条件时要做的事情1 ...

  5. python处理时间和日期_python时间和日期的处理

    时间概念 时间戳:格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 元组struct_time:python定义了一个时间类,包含9个 ...

  6. python语句结束符_python中判断文件结束符的具体方法

    python中判断文件结束符的方法:可以使用try except语句块来进行判断. 具体使用方法:[try:while True:s = input() except EOFError: pass]. ...

  7. python时间显示_python脚本之日期格式显示

    脚本内容: #!/usr/bin/python #coding=utf-8 #根据给定的年月日以数字形式打印出日期 months =[ "January", "Febru ...

  8. python图像清晰度_python 图像判断,清晰度(明暗),彩色与黑白实例

    1,判断图像清晰度,明暗, 原理,Laplacian算法.偏暗的图片,二阶导数小,区域变化小:偏亮的图片,二阶导数大,区域变化快. import cv2 def getImageVar(imgPath ...

  9. python合法标识符_Python isidentifier()判断是否为Python的合法标识符

    Python中isidentifier()函数的作用是检查一个字符串是否是Python有效的标识符. 一.标识符命名规则 标识符是用来定义Python中的变量.类.函数名称.模块名称以及Python中 ...

最新文章

  1. Asp.net 1.0 升级至 ASP.NET 2.0十个问题总结
  2. Linux环境网络库
  3. solr4.1 DataImport MYSQL批量导入
  4. matlab求解极限与倒数,matlab实验二__极限与导数
  5. android gps定位工具类,工具类之LocationUtils(定位工具类)
  6. 探索初级算法学习笔记-快速排序法
  7. SSH远程登录解析(linux)
  8. ODS(Operational Data Store)定义
  9. Solr学习总结(一)Solr介绍
  10. Python二级笔记(12)
  11. 栈实现队列(队列实现栈)
  12. c/c++入门教程 - 1.基础c/c++ - 1.0 Visual Studio 2019安装环境搭建
  13. 【数据结构笔记11】二叉搜索树,动态查找,删除操作
  14. 什么叫共轭先验或者共轭分布?
  15. SQL建表语句转换为Excel表格
  16. Qt优秀开源项目之十四:SortFilterProxyModel
  17. 2022-2027年中国电容器行业市场全景评估及发展战略规划报告
  18. 获取16位QQ邮箱授权码
  19. Python——验证码输入
  20. GTD方法在项目管理中的实践

热门文章

  1. 什么?终止一个容器竟然用了 10 秒钟,这不能忍!
  2. 顶级项目管理工具 Top 10
  3. 微服务化小团队集群的组织和管理
  4. mnn python 笔记
  5. Window ChromeDriver(简单4步完成)
  6. flask_socketio 用法:
  7. Flask 数据迁移 报错 Table 'xxx' is already defined for this MetaData instance
  8. pytorch 安装方法
  9. Tensorflow分批量读取tfrecords
  10. caffe-cuda测试