0

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

20120628061533.0, 20120628064851.0, 20120628064853.0, 20120628064920.0, 20120628064929.0

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

反正有没有容易做到这一点?

4

2 回答 2

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仅在写入屏幕/文件时保留对象并将它们转换为字符串。

于 2012-07-03T14:19:07.103 回答
0

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

于 2012-07-03T14:22:47.933 回答