Python:使用24小时时钟进行日期时间模块的一天结束

时间:2016-01-04 14:02:19

标签: python datetime

我正在使用datetime模块。我被告知24:00:00是一个ValueError 因为小时的范围从00到23.那么现在是什么时候结束 24小时钟的那天?

--------- ----------已编辑

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

我的问题是datetime模块的最后一次。因为它具有微秒的分辨率。戈德的答案是最准确的。

3 个答案:

答案 0 :(得分:5)

获取第二天的开始并减去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

答案 1 :(得分:4)

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

小时:23
分钟:59
秒:59
微秒:999999

因此,如果您有datetime,可以使用替换方法将其设置为当天结束:

import datetime

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

答案 2 :(得分:1)

练习中没有24:00:00。 23:59:59之后有0:00:00