我有一系列不同的时间,如下所示:
20120628061533.0, 20120628064851.0, 20120628064853.0, 20120628064920.0, 20120628064929.0
我想做的是从时间中减去 10 秒 30 秒和 1 分钟,但我面临的问题是我不能简单地减去 10 或 30 或 60,因为这样数字将不再是时间格式(即. 最后两位数可以大于 60)
反正有没有容易做到这一点?
我有一系列不同的时间,如下所示:
20120628061533.0, 20120628064851.0, 20120628064853.0, 20120628064920.0, 20120628064929.0
我想做的是从时间中减去 10 秒 30 秒和 1 分钟,但我面临的问题是我不能简单地减去 10 或 30 或 60,因为这样数字将不再是时间格式(即. 最后两位数可以大于 60)
反正有没有容易做到这一点?
使用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
仅在写入屏幕/文件时保留对象并将它们转换为字符串。
不,一般来说没有简单的方法可以做到这一点。如果您正在使用面向对象的语言编写,我建议您创建一个可以从整数构造的类,例如您展示的整数,并且在内部将相应的日期和时间表示为一堆整数,一个表示年份,一个月等。然后您可以处理这些日期/时间元素之间的“转换因子”(例如,一分钟 60 秒,一小时 60 分钟等,确保注意一个月中的天数) 因为你在做算术。