为什么在 datetime.time 毫秒字段中添加三个额外的零?
Why are three extra zeros added in the datetime.time milliseconds field?
我正在解析日志文件并将不同的值保存在不同的变量中。当我在 datetime.time(hour,minute,second,millisecond)
中插入毫秒时,它会在毫秒值前面添加三个额外的零,为什么?
lst = ['13', '33', '30.913']
hour = int(time[0], 10)
minute = int(time[1], 10)
second = int((time[2].split('.'))[0], 10)
millisecond = int((time[2].split('.'))[1], 10)
print(millisecond)
time = datetime.time(hour, minute, second, millisecond)
print(time)
我希望 print(time)
得到 13:33:30:913
,但实际输出是 13:33:30:000913
但是 print(millisecond)
的输出是 913
,这是正确的。
datetime.time
的第 4 个参数实际上是微秒而不是毫秒:
datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
为了使您的代码正常工作,您应该将毫秒数乘以 1000,然后可以使用 isoformat
方法进行打印:
time = datetime.time(hour, minute, second, millisecond * 1000)
print(time.isoformat('milliseconds'))
我正在解析日志文件并将不同的值保存在不同的变量中。当我在 datetime.time(hour,minute,second,millisecond)
中插入毫秒时,它会在毫秒值前面添加三个额外的零,为什么?
lst = ['13', '33', '30.913']
hour = int(time[0], 10)
minute = int(time[1], 10)
second = int((time[2].split('.'))[0], 10)
millisecond = int((time[2].split('.'))[1], 10)
print(millisecond)
time = datetime.time(hour, minute, second, millisecond)
print(time)
我希望 print(time)
得到 13:33:30:913
,但实际输出是 13:33:30:000913
但是 print(millisecond)
的输出是 913
,这是正确的。
datetime.time
的第 4 个参数实际上是微秒而不是毫秒:
datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
为了使您的代码正常工作,您应该将毫秒数乘以 1000,然后可以使用 isoformat
方法进行打印:
time = datetime.time(hour, minute, second, millisecond * 1000)
print(time.isoformat('milliseconds'))