python减去datetime对象的月份

时间:2016-02-12 08:52:50

标签: python datetime

我想减去几个月并以yyyymmdd的形式获得结果。 为了开始,我得到一个字符串时间戳,以秒为单位,然后这就是我正在做的事情:

>>> ts=1454284800
>>> billdate = datetime.datetime.strptime(time.strftime('%Y%m%d', time.gmtime(ts)), '%Y%m%d') - datetime.timedelta(5*365/12.0)
>>> billdate
datetime.datetime(2015, 9, 1, 22, 0)
>>>

在我的片段中,我减去5个月,并获得datetime.datetime(2015,9,1,22,0)。我想摆脱22小时并获得datetime.datetime(2015,9,1,0,0)。

提前致谢。

2 个答案:

答案 0 :(得分:0)

第1:22点不是白天。这是几个小时。

第2点:如果你想摆脱几个小时并在12:00 AM获得日期时间,那么试试这个:

>>> billdate = datetime.datetime(billdate.year, billdate.month, billdate.day)
>>> billdate
datetime.datetime(2015, 9, 1, 0, 0)

答案 1 :(得分:0)

如果要修改datetime.datetime对象的字段,则需要使用replace

billdate = billdate.replace(hour=0)

来自datetime维基页

的引用
  

datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])

     

返回具有相同属性的日期时间,但这些属性除外   由任何关键字参数给出新值的属性   指定的