如何在Python中获得真正的三位数的微秒?

csr-nontol

我正在尝试增加时间。

我想获得这样的小时格式:(13:30:45,123在Java中:)"HH:mm:ss,SSS",但是Python显示13:30:45,123456"%H:%M:%S,%f")(6位微秒)。

我在网上阅读,发现了可能的解决方案,例如:

from datetime import datetime
hour = datetime.utcnow().strftime('%H:%M:%S,%f')[:-3]
print(hour)

输出为: 04:33:16,123

但这是一个不好的解决方案,因为如果以小时为例01:49:56,020706例如:,输出为:01:49:56,020,则右边应为:(01:49:56,021四舍五入)。


真正的目的是,如果我增加毫秒,甚至达到舍入秒数。
示例:(我想增加500微秒

如果输入:00:01:48,557,则输出应为:00:01:49,057

Java程序的代码(运行良好)是:

SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss,SSS");            
System.out.print("Input the time: ");
t1 = in.next();

Date d = df.parse(t1);
Calendar cal = Calendar.getInstance();            
cal.setTime(d);
cal.add(Calendar.MILLISECOND, 500);//here increase the milliseconds (microseconds)

t2 = df.format(cal.getTime());            
System.out.print("The Output (+500): "+t2);

我不知道Python中是否存在类似SimpleDateFormat(在Java中)的东西

shx2

至于另外,您可以添加500毫秒到你的datetime对象,使用timedelta对象:

from datetime import datetime, timedelta
t1 = datetime.utcnow()
t2 = t1 + timedelta(milliseconds=500)

因此,只要使用datetime对象而不是字符串,就可以轻松地进行所有需要的时间操作。

因此,我们剩下的问题是如何格式化要显示的时间。

正如您所指出的,[:-3]-trick似乎是常见的解决方案,在我看来,它应该可以正常工作。如果您确实关心正确舍入到最接近的舍入毫秒,则可以使用以下“舍入技巧”:

您一定已经看过用于浮动的技巧:

def round(x):
    return int(x + 0.5)

相同的想法(即加0.5)也可以应用于datetimes:

def format_dt(t):
    tr = t + timedelta(milliseconds=0.5)
    return tr.strftime('%H:%M:%S,%f')[:-3]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在scala中获得从000开始的三位数范围?ex List.range(000,200)输出:List(000,001,002 ....,199)

来自分类Dev

如何连接字符串和整数以获得三位数

来自分类Dev

如何用grep匹配三位数?

来自分类Dev

OBD II中的三位数PID

来自分类Dev

如何在角度js的三位数后添加点

来自分类Dev

如何在PHP中获取字符前的最后三位数字

来自分类Dev

如何获得前三位数字并进行比较以进行输出?

来自分类Dev

如何在python中计算和打印以三位数(例如001,002,003,004等)开头的数字?

来自分类Dev

获取每个间隙的前三位数

来自分类Dev

输入列表-双/三位数

来自分类Dev

获取每个间隙的前三位数

来自分类Dev

如何访问三位数 int 中的第二个字符?

来自分类Dev

如何检查三位数字是否是回文?

来自分类Dev

从数组中获取所有三位数并存储在新数组中

来自分类Dev

如何解析逗号后的三位数浮点数?

来自分类Dev

XSL:如何对三位数的连字符分隔值进行排序?

来自分类Dev

小数点前如何显示三位数?

来自分类Dev

如何打印浮点数小数点后的前三位数?

来自分类Dev

如何将json十进制舍入为三位数

来自分类Dev

带有三位数小时的Python时间格式

来自分类Dev

对于三位数的指数,Fortran在输出中删除“ E”

来自分类Dev

将div中的数字更改为三位数逗号

来自分类Dev

对于三位数的指数,Fortran在输出中删除“ E”

来自分类Dev

根据Excel中的条件删除三位数?

来自分类Dev

在数据表(R)中每三位数加一个逗号

来自分类Dev

量化器仅在Java正则表达式中输出三位数

来自分类Dev

我如何从cpp中任何给定数字的右边获取第三位数字?

来自分类Dev

Python:Pandas 数据框根据列中整数的最后三位数字重新排列行

来自分类Dev

输出浮点数为三位数或更多以避免指数

Related 相关文章

  1. 1

    如何在scala中获得从000开始的三位数范围?ex List.range(000,200)输出:List(000,001,002 ....,199)

  2. 2

    如何连接字符串和整数以获得三位数

  3. 3

    如何用grep匹配三位数?

  4. 4

    OBD II中的三位数PID

  5. 5

    如何在角度js的三位数后添加点

  6. 6

    如何在PHP中获取字符前的最后三位数字

  7. 7

    如何获得前三位数字并进行比较以进行输出?

  8. 8

    如何在python中计算和打印以三位数(例如001,002,003,004等)开头的数字?

  9. 9

    获取每个间隙的前三位数

  10. 10

    输入列表-双/三位数

  11. 11

    获取每个间隙的前三位数

  12. 12

    如何访问三位数 int 中的第二个字符?

  13. 13

    如何检查三位数字是否是回文?

  14. 14

    从数组中获取所有三位数并存储在新数组中

  15. 15

    如何解析逗号后的三位数浮点数?

  16. 16

    XSL:如何对三位数的连字符分隔值进行排序?

  17. 17

    小数点前如何显示三位数?

  18. 18

    如何打印浮点数小数点后的前三位数?

  19. 19

    如何将json十进制舍入为三位数

  20. 20

    带有三位数小时的Python时间格式

  21. 21

    对于三位数的指数,Fortran在输出中删除“ E”

  22. 22

    将div中的数字更改为三位数逗号

  23. 23

    对于三位数的指数,Fortran在输出中删除“ E”

  24. 24

    根据Excel中的条件删除三位数?

  25. 25

    在数据表(R)中每三位数加一个逗号

  26. 26

    量化器仅在Java正则表达式中输出三位数

  27. 27

    我如何从cpp中任何给定数字的右边获取第三位数字?

  28. 28

    Python:Pandas 数据框根据列中整数的最后三位数字重新排列行

  29. 29

    输出浮点数为三位数或更多以避免指数

热门标签

归档