为什么在datetime.time毫秒字段中添加三个额外的零?

2024-06-02 14:33:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解析一个日志文件,并将不同的值保存在不同的变量中。当我在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)

我期望13:33:30:913来自print(time),但实际输出是13:33:30:000913

但是print(millisecond)的输出是913,这是正确的


Tags: 文件datetimetimeintsplitprintsecondlst
1条回答
网友
1楼 · 发布于 2024-06-02 14:33:51

^{}的第四个参数实际上是微秒,而不是毫秒:

datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)

为了使代码正常工作,您应该将毫秒乘以1000,并且可以使用^{}方法进行打印:

time = datetime.time(hour, minute, second, millisecond * 1000)
print(time.isoformat('milliseconds'))

相关问题 更多 >