如何使用python检查日期是否为空?

新手上路,请多包涵

startdateenddate 值来自 jenkin 到 lambda。在此代码中,我尝试使用 event["start_date"] and event["end_date"] 获取值,它工作正常,但如果 startdateenddate 昨天的约会。

我是 python 的新手,有人可以帮忙吗?

我尝试如下,但出现错误。如果我将提及“开始日期和结束日期为无”并将两个值都设置为无,那么它可以正常工作,但我需要实现代码中提到的,因为我将 AWS lambda 与 python 一起使用。

 import datetime
from datetime import timedelta

dateformat = "%Y-%m-%d"
startdate = datetime.datetime.strptime("", dateformat)
enddate = datetime.datetime.strptime("", dateformat)
# Both startdate and enddate values come from Jenkin to lambda  -
event["start_date"] and event["end_date"]
if (startdate and enddate) == "":
    startdate = datetime.date.today()
    enddate = startdate - datetime.timedelta(days = 1)
    print('yesterday : ', enddate)
    print('Today : ', startdate)

当前错误输出:

 Traceback (most recent call last):
  File "variable_value_change.py", line 10, in <module>
    startdate = datetime.datetime.strptime("", dateformat)
  File "C:\Users\336635743\AppData\Local\Programs\Python\Python37-32\lib_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "C:\Users\336635743\AppData\Local\Programs\Python\Python37-32\lib_strptime.py", line 359, in _strptime
   (data_string, format))
ValueError: time data '' does not match format '%Y-%m-%d'

原文由 Jiya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

改变这一行

if (startdate and enddate) == "":

if startdate == "" and enddate == "":

另一种方式:

 if not startdate and not enddate: # PEP 8 recommended

原文由 shaik moeed 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 try-except 块。

前任:

 try:
    startdate = datetime.datetime.strptime(event["start_date"], dateformat)
    enddate = datetime.datetime.strptime(event["end_Date"], dateformat)
except:
    startdate = datetime.date.today()
    enddate = startdate - datetime.timedelta(days = 1)

原文由 Rakesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题