2013-08-05 40 views
1

我需要打印(並傳遞到外部API)的當前日期時間在以下格式:的Python/Django的時間戳包括毫秒

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

這就是所謂毫秒時,它的3個數字。 ;-) –

回答

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'