首页 > 解决方案 > Python:检查、比较时间、日期。验证日期

问题描述

我正在尝试为日期创建某种验证。

我的 API 请求有这些日期。

"date_from": "2020-11-20T20:11:00Z",
"date_to": "2020-11-20T20:12:50Z"

date.timestamp()=1605903600.0

datetime.utcnow().timestamp()=1605896932.580989

假设当前时间是 2020-11-20 20:13:00,我仍然可以通过提供2020-11-20T20:11:00Z比当前时间更早的时间 ( ) 创建一些对象。

我需要检查是否date_from不小于当前时间,所以我尝试:

def validate_date_from(self, date):

    if date.timestamp() <= datetime.utcnow().timestamp():
        raise serializers.ValidationError("Meeting could not start earlier than the current time")
    return date

但是我仍然可以通过 API 创建对象,这意味着验证方法不能正常工作。

其次,我有这个代码片段(如下)它应该检查当前是否正在进行预订,所以基本上它检查开始日期和结束日期之间,如果当前时间在开始日期和结束日期之间,我们可以知道会议是活跃的,但不幸的是,它不能正常工作。

if parse(reservation['date_from']).timestamp() >= datetime.now().timestamp() <= parse(reservation['date_to']).timestamp():
    raise serializers.ValidationError("Room is in-use")

parse(reservation['date_from']).timestamp()=1605903060.0

datetime.now().timestamp()=1605896745.853667

parse(reservation['date_to']).timestamp()=1605903170.0

标签: pythondjango

解决方案


推荐阅读