Python 以微秒更改日期格式

Python 以微秒更改日期格式,python,datetime,python-2.7,Python,Datetime,Python 2.7,我需要将日期格式更改为其他格式。 我的日期是:00:00:01.0156001 我想把它改成1015ms 我写了这段代码: import datetime s1 = datetime.datetime.strptime('00:00:01.0156001', '%H:%M:%S.%f') print s1.strftime('%S%f') 但这会打印前导零和所有微秒-01015600 谢谢在这种情况下不要使用.strftime()。如果需要一个持续时间,请转换为timedelta,并使用其ti

我需要将日期格式更改为其他格式。 我的日期是:00:00:01.0156001 我想把它改成1015ms 我写了这段代码:

import datetime
s1 = datetime.datetime.strptime('00:00:01.0156001', '%H:%M:%S.%f')
print s1.strftime('%S%f')
但这会打印前导零和所有微秒-01015600

谢谢

在这种情况下不要使用
.strftime()
。如果需要一个持续时间,请转换为
timedelta
,并使用其
timedelta.total_seconds()
方法将其转换为毫秒值:

s1 = datetime.datetime.strptime('00:00:01.015600', '%H:%M:%S.%f')
delta = s1 - datetime.datetime.combine(s1.date(), datetime.time.min)

print '{:.0f}ms'.format(delta.total_seconds() * 1000)
演示:


这是1016毫秒,四舍五入,不是吗?嗨,当使用时间工作时:00:00:00.015600,但是当使用00:00:00.0156001运行时,我得到了这个错误:ValueError:未转换的数据仍然是:1。我怎样才能解决这个问题?@user2682320:但不能用额外的尾随
1
,对吗?我想知道你为什么会在那里,因为那是一个数字太多了。是的,我正在尝试解析日志文件,这是输出。输出为00:00:00.0156001,不存在;t work..@user2682320:它不起作用,因为
strtime()
函数不支持额外的最后一位数字<代码>%f仅支持6位数字,而
0156001
为7位数字。在解析之前删除该尾随数字。
>>> import datetime
>>> s1 = datetime.datetime.strptime('00:00:01.015600', '%H:%M:%S.%f')
>>> delta = s1 - datetime.datetime.combine(s1.date(), datetime.time.min)
>>> print '{:.0f}ms'.format(delta.total_seconds() * 1000)
1016ms