Python / Django时间戳,包括毫秒

时间:2013-08-05 15:33:13

标签: python django datetime python-2.7

我需要按以下格式打印(并传递给外部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位数)而不是微秒?

1 个答案:

答案 0 :(得分:5)

通过将时间戳微秒除以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'