TypeError: can't compare offset-naive and offset-aware datetimes
파이썬 프로그램에서 날자값을 비교하다보면 자주 접하는 오류가
TypeError: can't compare offset-naive and offset-aware datetimes 인것 같습니다.
Error Code:
last_time = pd.to_datetime(self.chart_data[stockCode][-1:].time[0]) |
해결방법은 다음과 같습니다.
원인: 파이썬에서는 기본적으로 datetime 오브젝트는 aware가 아닌 "naive" 타입입니다.
그래서, 비교 하려는 두 값 모두 같은 type의 오브젝트 여야 합니다.
Sampe Code:
import datetime challenge.datetime_start = utc.localize(challenge.datetime_start) challenge.datetime_end = utc.localize(challenge.datetime_end) # 이제 두개의 datetime 오브젝트는 모두 aware 타입이 되었으므로 비교가 가능합니다. |
헷갈리시면, 다음과 같이 사용하셔도 됩니다.
start_time = challenge.datetime_start.replace(tzinfo=utc) |
참고로, datetime.timezone에 대해서 알아볼께요.
UTC를 기준으로 시간이 빠르면 +시차, 시간이 느리면 -시차로 표시합니다.
시간대나라코드
UTC-5 | 미국(동부) | EST |
UTC | 영국 | GMT |
UTC+8 | 대만 | TW |
UTC+9 | 대한민국 | KST |
UTC+9 | 일본 | JST |
UTC+10 | 오스트레일리아(동부) | AEST |
- 나라별 시간대 차이에 대한 더 자세한 내용은 여기를 참고해주세요.
참조사이트:
spoqa.github.io/2019/02/15/python-timezone.html
'파이썬(Python) 프로그래밍' 카테고리의 다른 글
파이썬에서 Slack API를 통한 주식매매정보 보내기 (0) | 2021.03.05 |
---|---|
Anaconda Installers를 활용한 파이썬 설치 및 개발환경 설정 (1) | 2021.01.03 |
No module named 'talib' (0) | 2020.11.10 |
Python data Type - Datetime (0) | 2020.09.20 |
Python의 독립적인 가상 실행 환경(Environment)을 위한 Anaconda env 설정 방법 (2) | 2020.06.07 |