为了账号安全,请及时绑定邮箱和手机立即绑定

是否有允许检查 24 小时制是否有效的库?

是否有允许检查 24 小时制是否有效的库?

米琪卡哇伊 2022-12-20 11:02:29
我正在尝试使用 python 的多个datetime库中的任何一个来检查给定时间是否有效。此给定时间将采用 24 小时格式,有效输入的示例为2359, 0000, 1330,而无效输入的示例为2400, 2360, 2500。请问是否有更好的方法来检查输入的有效性,而不用解析字符串来单独检查?如果可能的话,最好使用 python 库如果没有这样的库,我可以问一下这应该如何在正则表达式中完成吗?
查看完整描述

5 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您可以使用strptime进行解析,使用 format %H%M。如果失败,则无效。

from datetime import datetime


try:

    datetime.strptime('2359', '%H%M')

    print('valid')

except ValueError:

    print('invalid')


查看完整回答
反对 回复 2022-12-20
?
当年话下

TA贡献1890条经验 获得超9个赞

为什么需要图书馆?您可以使用裸 Python 代码来完成:


STRTIME = "2317"


if (0 <= int(STRTIME[:2]) < 24 and 0 <= int(STRTIME[2:]) < 60):

   print("Valid")


查看完整回答
反对 回复 2022-12-20
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您可以尝试使用以下方法解析它time.strptime:


import time


def is_valid_time(value):

    try:

        _ = time.strptime(value, '%H%M')

    except ValueError:

        return False


    return True


查看完整回答
反对 回复 2022-12-20
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

您可能会使用正则表达式:

\b(?:[01][0-9]|2[0-3])[0-5][0-9]\b

请参阅regex101.com 上的演示


查看完整回答
反对 回复 2022-12-20
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

需要在您的日期时间方案中添加正则表达式方法

^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ (js engine)

逻辑:

  • 第一个数字(小时)是:0 到 19 之间的数字 --> [0-1]?[0-9](允许单个数字)或 20 - 23 之间的数字 --> 2[0-3 ]

  • 第二个数字(分钟)始终是 00 到 59 之间的数字 --> [0-5][0-9](不允许单个数字)


查看完整回答
反对 回复 2022-12-20
  • 5 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信