본문 바로가기
파이썬

파이썬 Python datetime을 타임 스탬프로 변환하고 UTC로 다시 변환하면 여전히 현지 시간대를 사용합니다.

by º기록 2020. 10. 3.
반응형

utc 타임 스탬프를 제공하는 코드로 작업 중이며 적절한 날짜 / 시간으로 변환하고 싶습니다. 불행히도 pytz로 간단한 사례를 테스트 할 때 datetime에 6 시간이 추가되었습니다 (UTC에 대한 CST 오프셋). 다른 시간대 간의 차이도 계산하기 때문에 시간대 데이터를 올바르게 유지해야합니다. utc 타임 스탬프를 utc datetime으로 변환하는 이유와 방법에 대한 아이디어가 있습니까?

In [1]: import pytz

In [2]: from datetime import datetime

In [3]: import time

In [4]: datetime.fromtimestamp(time.mktime(datetime(7,1,1, tzinfo=pytz.UTC).timetuple()), tz=pytz.UTC)
Out[4]: datetime.datetime(2007, 1, 1, 6, 0, tzinfo=<UTC>)

In [5]: datetime.fromtimestamp(time.mktime(datetime(7,1,1).utctimetuple()), tz=pytz.UTC)
Out[5]: datetime.datetime(2007, 1, 1, 6, 0, tzinfo=<UTC>)

In [6]: datetime.fromtimestamp(time.mktime(datetime(7,1,1).utctimetuple()))
Out[6]: datetime.datetime(2007, 1, 1, 0, 0)

 

해결 방법

 


In [101]: ts = calendar.timegm(datetime(2010, 7, 1, tzinfo=pytz.utc).timetuple())

In [102]: datetime.fromtimestamp(ts, tz=pytz.utc)
Out[102]: datetime.datetime(2010, 7, 1, 0, 0, tzinfo=<UTC>)

 

참조 페이지 https://stackoverflow.com/questions/5956638

 

 

반응형

댓글