2016-06-21 4 views
0

내가 단순하다고 생각한 것은 그러한 투쟁이되었습니다. datetime 개체의 서식을 지정하려고합니다.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] 

그때 나는 NEW_VALUE 및 OLD_VALUE 및 디스플레이 아무것도 모두의 값의 흔적을 제거하지만 다음

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

I는이 내 시간을 낭비 하루 종일 – 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