Python:对datetime模块使用24小时时钟的一天结束

Python:对datetime模块使用24小时时钟的一天结束,python,datetime,Python,Datetime,我正在使用datetime模块。我被告知24:00:00是一个错误 因为小时在00到23之间。那么比赛什么时候结束 24小时时钟中的一天 ---------编辑---------- 到目前为止,我更喜欢戈德的答案。虽然Igor有一个非常实用的 我的问题是datetime模块的最后一次是什么时间。因为它的分辨率是微秒。戈尔的答案是最准确的。实践中没有24:00:00。23:59:59之后是0:00:00获取第二天的开始并减去1微秒: import datetime source_datetime

我正在使用
datetime
模块。我被告知24:00:00是一个错误 因为小时在00到23之间。那么比赛什么时候结束 24小时时钟中的一天

---------编辑----------

到目前为止,我更喜欢戈德的答案。虽然Igor有一个非常实用的


我的问题是
datetime
模块的最后一次是什么时间。因为它的分辨率是微秒。戈尔的答案是最准确的。

实践中没有24:00:00。23:59:59之后是0:00:00

获取第二天的开始并减去1微秒:

import datetime

source_datetime = datetime.datetime.now()
eod = datetime.datetime(
    year=source_datetime.year,
    month=source_datetime.month,
    day=source_datetime.day
) + datetime.timedelta(days=1, microseconds=-1)

print(eod)  # 2016-01-04 23:59:59.999999

datetime
对象的分辨率为微秒,因此给定日期的最后可能时间值为23:59:59.99999。就是

工作时间:23小时 会议记录:59
秒:59
微秒:999999

因此,如果您有一个
日期时间
,您可以使用replace方法将其设置为一天结束:

import datetime

now_datetime = datetime.datetime.now()
end_of_day_datetime = now_datetime.replace(hour=23, minute=59, second=59, microsecond=999999)

我真的不知道日期时间,但一天的结束时间是23:59:59。00:00(=24:00)是第二天的开始。非常有趣的问题!这听起来有些琐碎,但不太清楚一天的开始和结束是什么。乍一看,我会说(一般来说,不涉及编程),00:00:00应该是一天的结束,00:00:01应该是一天的开始。但也许我完全错了。0是最开始->ISO 8601允许24:00代表第二天的00:00:00。对于用户来说,在一天的“00:00:00”到“24:00:00”期间请求报告比在>=00:00:00和<00:00:00-the-the-the-following-day期间请求报告要方便得多。前一天的最后一微秒与第二天的第一微秒不同。