关于python:从第二个时间戳减去月份

substract month from timestamp in second

本问题已经有最佳答案,请猛点这里访问。

我想用秒从时间戳中减去几个月。以下是我要做的:

1
2
3
4
5
6
7
8
>>> ts = 1454284800
>>> date_object = datetime.datetime.strptime(time.strftime('%Y%m%d', time.gmtime(1454284800)), '%Y%m%d')
>>> date_object
datetime.datetime(2016, 2, 1, 0, 0)
>>> date_substract = date_object - datetime.timedelta(9*365/12.0)
>>> date_substract
datetime.datetime(2015, 5, 3, 6, 0)
>>>

它取决于我要减去的月份数的值,但对于9个月的示例,days datetime.datetime(2015,5,3,6,0)是错误的。有没有更好的方法来缩短月份,这只会改变月份数,而不是天数。

事先谢谢。


仿佛是你的朋友。它计算了一个相对日期的价值。

它处理了作弊案(E.G.在3月31日之前一个月),但你需要检查决议是否符合你的要求。

1
2
3
date = datetime.datetime(year=2016, month=3, day=31)
date + dateutil.relativedelta.relativedelta(date, months=-1)
=> datetime.datetime(2016, 2, 29, 0, 0)