2016-06-21 16 views
0

シンプルになると思ったものは、このような闘いになりました。 datetimeオブジェクトをフォーマットしようとしています。Python書式日付問題

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

このコードでは出力を変更していません。それはすぐにそれをスキップします。それはNEW_VALUEとOLD_VALUE両方の値のいずれかの痕跡を削除し、何も表示されませんしかし

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] 

を試してみました。それは私をそんなに混乱させている!

私のコードの端部には、日付を表示する次のとおりです。誰もが正しい方向に私を指すことができれば

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

あなた.strftime()呼び出しの前に追加.utcnow()コールを削除してください。 new_value.utcnow()datetime.datetime.utcnowを呼び出し、現在時刻を表す全く新しいdatetime.datetimeオブジェクトを返します。これはnew_valueまたはold_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