繁体   English   中英

在python中自定义datetime对象的时间

[英]Customizing time of the datetime object in python

出于计费目的,我有一些代码,可以根据需要生成必要的数据。

但是我目前面临一个时间间隔问题,我有一个想法可以通过添加默认时间值来解决。

确切地说,请考虑以下日期时间对象值。

2016-03-22 05:36:07.703078
2016-04-21 05:36:07.703078

一个是开始日期的值,而另一个是结束日期的值。

现在,我需要将开始日期设置为“ 2016-03-22 00:00:00”,将结束日期设置为“ 2016-04-21 23:59:59”。

这是代码,我已使用它创建开始日期和结束日期。

    # begin date and end date set
    begin = date - dateutil.relativedelta.relativedelta(months=1)
    print(begin)
    print(type(begin))
    end = date - dateutil.relativedelta.relativedelta(days=1)
    print(end)

有人让我知道实现此目标的方法。

Python的datetime对象是不可变的,即date_obj.hour = 23结果
AttributeError: attribute 'hour' of 'datetime.datetime' objects is not writable

相反,我们需要创建一个新的datetime对象。 将此视为指导:

from datetime import datetime
from dateutil import relativedelta

orig_start = datetime.now()
orig_end = datetime.now() + relativedelta.relativedelta(months=1)

print(orig_start)
print(orig_end)

mod_start = datetime(year=orig_start.year,
                     month=orig_start.month,
                     day=orig_start.day,
                     hour=0, minute=0, second=0)

mod_end = datetime(year=orig_end.year,
                   month=orig_end.month,
                   day=orig_end.day,
                   hour=23, minute=59, second=59)

# or even better as suggested in the comments:
mod_end = orig_end.replace(hour=23, minute=59, second=59, microsecond=0)

print(mod_start)
print(mod_end)

输出:

2016-04-22 16:11:08.171845
2016-05-22 16:11:08.171845
2016-04-22 00:00:00
2016-05-22 23:59:59

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM