我有这段代码可以打印时间差(以毫秒为单位)。
#!/usr/bin/python
import datetime
import sys
date1= datetime.datetime.strptime('20231107-08:52:53.539', '%Y%m%d-%H:%M:%S.%f')
date2= datetime.datetime.strptime('20231107-08:52:53.537', '%Y%m%d-%H:%M:%S.%f')
diff = date1-date2
sys.stdout.write(str(diff) + '\t')
date1= datetime.datetime.strptime('20231107-08:52:53.537', '%Y%m%d-%H:%M:%S.%f')
date2= datetime.datetime.strptime('20231107-08:52:53.537', '%Y%m%d-%H:%M:%S.%f')
diff = date1-date2
sys.stdout.write(str(diff) + '\t')
date1= datetime.datetime.strptime('20231107-08:52:53.532', '%Y%m%d-%H:%M:%S.%f')
date2= datetime.datetime.strptime('20231107-08:52:53.537', '%Y%m%d-%H:%M:%S.%f')
diff = date1-date2
sys.stdout.write(str(diff) + '\n')
它打印这个,没有一致性
$ python ./prntdatetest.py
0:00:00.002000 <选项卡> 0:00:00 <选项卡> -1 天,23:59:59.995000
我希望这样打印
00:00:00.002 <选项卡> 00:00:00.000 <选项卡> -0:00:00.005
我不想使用打印,但我想使用stdout.write
我怎样才能做到这一点?
您可以定义以下格式化函数:
输出:
注意:处理截至当天的值。对于 >= 1 天的增量,您需要更新该函数。
用于
diff.total_seconds()
获取 timedelta 对象中的绝对秒数。从那里,使用模和除法来分隔小时、分钟和秒:
当然,如果将上述字符串格式分解为单独的辅助函数,效果会更好。