python - 为什么在 datetime.time 毫秒字段中添加了三个额外的零?
问题描述
我正在解析一个日志文件并将不同的值保存在不同的变量中。当我在其中插入毫秒时,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)
但是is的输出913
是正确的。
解决方案
的第四个参数datetime.time
实际上是微秒而不是毫秒:
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'))
推荐阅读
- doctrine-orm - 教义中多对多关系的清洁方式
- python - 图像处理的随机采样
- ruby - 我可以在厨师节点属性数组上使用 sort 和 uniq 吗?
- r - 关于 R 的问题:使相等的值在数据集中唯一
- android - Firebase getChildrenCount() 显示 0
- javascript - 如何使用 Keycloak 登录进行反应?
- python-3.x - 导入如何在 Spyder IDE 中工作?为什么从 Powershell 运行代码会有所不同?
- python - UnboundLocalError:分配前引用的局部变量日期
- python - BeautifulSoup Finviz
- python - 使用单词和字符 LSTM 进行文本预测