我有一系列不同的时间,如下所示:
20120628061533.0, 20120628064851.0, 20120628064853.0, 20120628064920.0, 20120628064929.0
我想做的是从时间减去10秒30秒和1分钟,但我面临的问题是我不能简单地减去10或30或60因为那时数字将不再及时格式(即最后两位数可以大于60)
有没有办法轻易做到这一点?
答案 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分钟等,确保一个月内的天数小心) )当你在做算术时。