我有一个问题,我经常处理时间和时间差异。到目前为止,我已经使用许多 if 语句解决了这个问题,但这些很容易出错。在寻找更好的解决方案并且没有重新发明轮子的情况下,我遇到了时间、日期和时间增量。但是这些对我来说似乎太不灵活了,所以我正在寻找关于如何使用 python 的内置函数解决这个问题的想法和技巧——如果可能的话。这就是问题所在:将卫星数据从大片分区到常规网格涉及大量简单的时间计算。如果我有日期整数:200702100700 我想从这样的时间格式中添加和减去小时和分钟,这样 date - 18 会给我一个新的日期,它考虑到闰年并且可以向后交叉,年,月,日和前锋。以下是我对 python 的 datetime 包的理解:
from datetime import timedelta, date, time
t1 = date(2007,01,01); t = time(12,0); t2 = datetime.combine(t1,t)
t3 = timedelta(hours=18); t4 = t2 - t3; t5 = t2 + t3
print t4
>>>datetime.timedelta(2006, 23401, 3001)
这个时间在将进行数千次计算的脚本中不是很有用。我的问题是 t4 没有年、月或日对象,并且 2006 似乎被视为小时。这一切都非常令人困惑。这在 python/numpy/scipy 中可能吗?如果是这样,有人可以给我小费吗?