2017-04-18 2 views
1

나는이 문제를 해결할 수 없다.python datetime.utcnow가 올바른 타임 스탬프를 표시하지 않음

1970 년 1 월 이후 unixtime이 총 초라고 가정 할 때 datetime.utcnow(). timestamp()가 다른 숫자를 반환하는 이유는 무엇입니까?

>>> from datetime import datetime 
>>> now = datetime.utcnow() 
>>> print(now.timestamp()) 
1492525439.406112 
>>> print((now-datetime(1970,1,1)).total_seconds()) 
1492536239.406112 

답변

2

당신은 시간대 문제가 있습니다.

두 값의 차이는 정확히 10,600 초이며 정확히 3 시간입니다.

utcnow은 UTC 시간대입니다. datetime은 로컬 시스템 시간대를 사용합니다. 둘 다 변경하여 동일한 시간축을 사용하면 더 이상 차이가 없음을 알 수 있습니다.

datetime.now으로 변경하거나 datetime(...)datetime(...).replace(tzinfo=...)으로 변경할 수 있습니다.

관련 문제