python:由于在microsec中省略了前导零,因此时间戳的减法失败

时间:2017-05-18 13:16:02

标签: python date pandas datetime timestamp

我使用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)

任何想法如何解决这个问题?

0 个答案:

没有答案