반응형
3.12 Datetime 버전에서 Datetime이 큰 변화가 있을 예정이다.
Python 3.12에서 datetime 관련 변환에 대한 주요 내용은 다음과 같다.
datetime.utcfromtimestamp()와 datetime.datetime.utcnow()가 deprecated되어 향후 버전에서 제거될 예정이다.
- utcnow() 및 utcfromtimestamp() 메서드의 사용 중단:
- datetime.datetime의 utcnow()와 utcfromtimestamp() 메서드는 더 이상 권장되지 않으며, 향후 버전에서 제거될 예정이다. 대신, UTC 시간대를 나타내는 객체를 사용하여 now()와 fromtimestamp() 메서드를 호출할 때 tz 매개변수를 datetime.UTC로 설정하는 것이 좋다
- 시간대 인식 객체 사용 권장:
- 시간대를 인식하는 객체를 사용하여 날짜와 시간을 나타내는 것이 권장된다.
이는 시간대와 관련된 혼동을 줄이고, 더 정확한 시간 계산을 가능하게 할것으로 기대된다.
- 시간대를 인식하는 객체를 사용하여 날짜와 시간을 나타내는 것이 권장된다.
이 변화에 가장 큰 것은 기본값이 +00:00을 사용하는 포맷으로 변화되었다는 것이다.
이말은 기본적으로 타임존 값을 무조건 사용하도록 함으로써,
타임 존 값이 없어서 발생하던 문제를 최소화 하고 타임 포맷에 여러가지가 사용되어 왔던 부분을,
타임 존 포맷의 표준을 잡아주는 역활을 할 것으로 보인다.
utcnow() 및 utcfromtimestamp() 메서드 변화
이제 datetime.now()와 datetime.fromtimestamp()를 사용할 때 tz 매개변수를 datetime.UTC로 설정하는 것이 권장
from datetime import datetime, timezone
# 이전 방식 (사용 중단 예정)
naive_utc_now = datetime.utcnow()
naive_utc_from_timestamp = datetime.utcfromtimestamp(0)
# 새로운 방식
aware_utc_now = datetime.now(timezone.utc)
aware_utc_from_timestamp = datetime.fromtimestamp(0, timezone.utc)
print("Naive UTC Now:", naive_utc_now)
print("Aware UTC Now:", aware_utc_now)
print("Naive UTC from Timestamp:", naive_utc_from_timestamp)
print("Aware UTC from Timestamp:", aware_utc_from_timestamp)
UTC이후 시간대 인식 객체 사용 권장
시간대 인식 객체를 사용하여 날짜와 시간을 나타내는 것이 권장
from datetime import datetime, timezone, timedelta
# 시간대 인식 datetime 객체 생성
aware_datetime = datetime(2024, 11, 11, 12, 0, 0, tzinfo=timezone.utc)
# 다른 시간대로 변환
kst = timezone(timedelta(hours=9))
aware_datetime_kst = aware_datetime.astimezone(kst)
print("UTC Time:", aware_datetime)
print("KST Time:", aware_datetime_kst)
반응형
'Python' 카테고리의 다른 글
Python - "datetime" 클래스의 "utcnow" 메서드는 더 이상 사용되지 않습니다. (0) | 2024.12.10 |
---|---|
Python 3.12 - 주요 내용과 예제로 살펴보기 (0) | 2024.11.11 |
Python SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007 (2) | 2024.09.04 |
Python - Error Can't pickle local object 오류 해결 (0) | 2024.06.20 |
SQLAchemy - Column expression, FROM clause, or other columns clause element expected, 오류 해결 (0) | 2024.06.10 |