从int减去秒而没有格式化

时间:2012-07-03 14:16:45

标签: python

我有一系列不同的时间,如下所示:

20120628061533.0, 20120628064851.0, 20120628064853.0, 20120628064920.0, 20120628064929.0

我想做的是从时间减去10秒30秒和1分钟,但我面临的问题是我不能简单地减去10或30或60因为那时数字将不再及时格式(即最后两位数可以大于60)

有没有办法轻易做到这一点?

2 个答案:

答案 0 :(得分:5)

使用datetime

import datetime

a = 20120628061533.0

dt = datetime.datetime.strptime(str(int(a)), '%Y%m%d%H%M%S')
dt -= datetime.timedelta(minutes=1)

print dt.strftime('%Y%m%d%H%M%S')

打印

20120628061433

无论如何,保留datetime个对象并仅在写入屏幕/文件时将它们转换为字符串。

答案 1 :(得分:0)

不,一般来说,没有简单的方法可以做到这一点。如果您使用面向对象的语言编写,我建议创建一个类,该类可以从一个整数构建,例如您显示的那个,并在内部表示相应的日期和时间作为一堆整数,一年一个,然后您可以处理这些日期/时间元素中的“转换因子”(例如,一分钟60秒,一小时60分钟等,确保一个月内的天数小心) )当你在做算术时。