2017-10-11 133 views
1

我有小的python代碼來處理日期和時間,我需要問問題來修改腳本。該腳本提供如下,在小數點後格式化爲3位數

from datetime import date, datetime, timedelta 
import random 


def perdelta(start, end, delta): 
    curr = start 
    while curr < end: 
     yield curr 
     curr += delta 

s = datetime.now() - timedelta(days=10) 
e = datetime.now() - timedelta(days=8) 


# start = 2017-10-01 06:44:00.480208 
# end = 2017-10-03 06:44:00.480583 


# print "\n" 
# print "start = ", s 
# print "end = ", e 
# print "\n" 

dates = [] 

for result in perdelta(s, e, timedelta(seconds=15)): 
    print result 

當我打印出來的結果,我得到這樣

2017-10-03 06:49:50.009049 
2017-10-03 06:50:05.009049 

值如何保持在3個位數像2017-10-03 06:49:50.349小數點後?

+2

請問每個問題只有一個問題。 – Shadow

+1

當你上傳你的代碼時,你應該包括你的導入,這樣人們可以幫助你更容易 – 0TTT0

+0

@Shadow好吧,我已經更新它只有一個問題。但是,SOF每次提交只需要提出一個問題,這是否是一個規則?我雖然這些是相互關聯的 – Arefe

回答

1

如果您只對保留微秒前3位的字符串感興趣,則可以使用字符串拼接。

for result in perdelta(s, e, timedelta(seconds=15)): 
    print (str(result)[:-3]) 

更好的方法是什麼ShadowRanger在評論中提到的,使用.isoformat(...)直接與附加毫秒的時間規範格式化到ISO 8601。但不幸的是,timespec參數最近纔在Python 3.6中添加。