2016-06-21 147 views
0

一些我認爲會很簡單的事情已經變成這樣一種鬥爭。 我想格式化日期時間對象。Python格式日期問題

From this 2016-06-17 09:56:53.289000+00:00 to 2016-06-17 09:56:53 

我試過的這段代碼並沒有對輸出做任何修改。它跳過它。

if type(field) is models.DateField: 
    if old_value != None: 
     old_value = old_value.strftime('%Y-%m-%d %H:%M:%S')[:-3] 
    if new_value != None: 
     new_value = new_value.strftime('%Y-%m-%d %H:%M:%S')[:-3] 

然後我嘗試以下

if isinstance(new_value, datetime.datetime): 
    new_value = new_value.utcnow().strftime('%Y-%m-%d %H:%M:%S')[:-3] 
if isinstance(old_value, datetime.datetime): 
    old_value = old_value.utcnow().strftime('%Y-%m-%d %H:%M:%S')[:-3] 

然而,它同時刪除NEW_VALUE和OLD_VALUE,不顯示任何值的任何痕跡。這讓我很困惑!

我的代碼的結束部分如下,顯示日期:

if new_value != old_value: 
    print "%s does not match" % key 
    changes[key] = "Field %s %s updated to %s<br/>" % (key, old_value, new_value) 

如果任何人都可以在正確的方向指向我,將是巨大的。

+0

我認爲這會做 – shining

回答

1

嘗試取出.utcnow()叫你之前,你的.strftime()來電補充說。 new_value.utcnow()調用datetime.datetime.utcnow,它返回一個全新的datetime.datetime對象,表示當前時間,它與new_valueold_value無關。

+0

一整天浪費我的時間在這,你會發現我的錯誤,2秒!謝謝! – JohnTaylor

+0

適合我們所有人!很高興我能幫上忙! – Kate

0
d = '2016-06-17 09:56:53.289000+00:00' 

print(datetime.strptime(d[:19], '%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')) 
0

根據您的代碼只是一個簡單的片斷

In [11]: from datetime import datetime 

In [12]: mytime = now.strftime("%Y-%m-%d %H:%M:%S") 

In [13]: print(mytime) 
2016-06-21 16:44:32