我使用python 3.6并且需要减去两个时间戳:
timestamp1 = 2017-02-27 16:01:40
timestamp2 = 2017-02-27 00:00:00.000480
我的第一次尝试是:
newTimestamp = timestamp1 - timestamp2
这也减去了年份,日期等。我只想减去小时到微秒。
newTimestamp = timestamp1 - datetime.timedelta(hours=timestamp2.hour, minutes=timestamp2.minute, seconds=timestamp2.second, milliseconds=timestamp2.microsecond)
然而,这将返回以下错误结果: newTimestamp = 2017-02-27 16:01:39.520000
返回.microsecond& co。作用:
timestamp2.hour = 0
timestamp2.minute = 0
timestamp2.second = 0
timestamp2.microsecond = 480
如您所见:timestamp2.microsecond删除前导零并从000480中删除 - > 480000这是完全错误的。我可以用
format(timestamp2.microsecond), '06d'
添加前导零,但会得到一个我无法减去日期的字符串....
第二个时间戳变得非常有趣:
timestamp1 = 2017-02-27 16:01:40
timestamp2 = 2017-02-27 00:00:00.994424
timestamp2.second = 0
timestamp2.microsecond = 994424
newTimestamp = 2017-02-27 15:45:05.576000
有什么想法吗?感谢您的帮助。
// edit1:似乎我的问题不是由于前导零而来,但似乎微秒的最后3位正在使用的是微秒的前3位数,而实际的前3位数是微秒被用作分钟?和秒?
// edit2:jupp,刚发现这个整齐.compoments函数,怀疑确认:
print('newTimestamp : ', newTimestamp .components)
Components(days=0, hours=16, minutes=1, seconds=38, milliseconds=999, microseconds=513, nanoseconds=0)
任何想法如何解决这个问题?