2016-02-12 39 views
0

我想减去几个月,并得到形式为yyyymmdd的结果。 要开始我给出秒的字符串时间戳,那么这里就是我在做什么:从日期时间对象python减去月份

>>> 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)。

在此先感谢。

+0

有啥阻止你减去22天用相同属性的日期时间,除了通过赋予新值的那些 属性? – EdChum

+1

是不是22别的?小时? – Obsidian

回答

0

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

点2:如果你想摆脱时间和日期时间获得了上午12:00,那就试试这个:

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

如果你想修改datetime.datetime对象的领域,你需要使用replace

billdate = billdate.replace(hour=0) 

报价从datetime维基页面

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

返回取关键字参数都 指定