python - 检查两种不同格式的日期是否有效

标签 python date datetime

所以我创建了以下函数,其想法是检查数据是否采用 YYYY-MM-DD 或 MM/DD/YYYY 格式并返回相应的值。如果没有返回-1。

from datetime import datetime

def dateValidate(date):

    try:
        if date != datetime.strptime(date, "%Y-%m-%d").strftime("%Y-%m-%d"):
                raise ValueError
        return 1
        if date == datetime.strptime(date, "%m/%d/%Y").strftime("%m/%d/%Y"):
                raise ValueError
        return 2
    except ValueError:
        return -1

但是它似乎不适用于 MM/DD/YY 格式。关于出了什么问题有什么想法吗?

编辑:

import datetime

def validate(date):
    try:
        if date != datetime.datetime.strptime(date, "%Y-%m-%d").strftime("%Y-%m-%d"):
            raise ValueError
        return 1
    except ValueError:
        return -1
    try:
        if date == datetime.datetime.strptime(date, "%m/%d/%Y").strftime("%m/%d/%Y"):
            raise ValueError
        return 2
    except ValueError:
        return -1

这将返回 -1对于 validate('07/15/1996') .

最佳答案

只需尝试每个 datetime.strptime 并分别捕获每个错误。

def dateValidate(date):
    try:
        datetime.strptime(date, "%Y-%m-%d")
        return 1
    except ValueError:
        try:
            datetime.strptime(date, "%m/%d/%Y")
            return 2
        except ValueError:
            return -1

关于python - 检查两种不同格式的日期是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56827827/

相关文章:

Python 提取/解压缩 RAR 文件错误

python - 重载unittest测试用例

c# - 如何保护 ZeroMQ 请求回复模式免受潜在的消息丢失?

sql - mysql中的unix时间

php - 将输入的日期与当前日期进行比较并得到错误的结果,因为服务器时区与输入的时区不同

mysql - 从 MySQL 中的时间戳获取最近 'X' 天的记录

python - pandas 时间戳到 posix 转换的奇怪行为

python - 如何使用 python 加入/合并两个生成器输出

python - Pandas 计算行中逐年(或任何其他索引)的变化

mysql - 从mysql表的日期属性中获取月份和日期值