【问题标题】:Python/Django timestamp including millisecondsPython/Django 时间戳,包括毫秒
【发布时间】:2013-08-06 09:19:26
【问题描述】:

我需要按以下格式打印(并传递给外部 API)当前日期时间:

DD-MM-YYYY:HH:MM:SS:SSS

最后 3 个 SSS 表示毫秒。我知道如何使用 Python 的strftime 将当前日期时间打印到微秒,如下面的manage.py shell Django shell 会话:

In [1]: from django.utils import timezone

In [2]: timezone.now()
Out[2]: datetime.datetime(2013, 8, 5, 15, 26, 10, 71046, tzinfo=<UTC>)

In [3]: timezone.now().strftime('%d-%m-%Y:%H:%M:%S:%f')
Out[3]: '05-08-2013:15:28:31:647504'

如何打印结尾的:SSS部分,使上面的字符串变成:

'05-08-2013:15:28:31:123'

即显示毫秒(仅使用 3 位数字)而不是微秒?

【问题讨论】:

  • 3位数时称为毫秒。 ;-)

标签: python django datetime python-2.7


【解决方案1】:

通过将时间戳微秒除以 1000 来分别添加毫秒:

tznow = timezone.now()
'{:%d-%m-%Y:%H:%M:%S}.{:03d}'.format(tznow, tznow.microsecond // 1000)

演示:

>>> from django.utils import timezone
>>> tznow = timezone.now()
>>> '{:%d-%m-%Y:%H:%M:%S}.{:03d}'.format(tznow, tznow.microsecond // 1000)
'05-08-2013:15:36:00.339'

【讨论】:

    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多