날짜 시간 정보가 있는 datetime 객체의 timezone을 변경하는 방법을 소개합니다.
1. Local 현재 시간, UTC 현재 시간
datetime.now()는 현재 국가의 시간을 리턴합니다.datetime.utcnow()는 UTC의 기준인 영국의 시간을 리턴합니다.datetime.now(timezone.utc)는 timezone이 적용되어 UTC 시간으로 표현됩니다.
from datetime import datetime, timedelta, timezone
datetime_now = datetime.now()
datetime_utc = datetime.utcnow()
datetime_utc2 = datetime.now(timezone.utc)
print("datetime_now:", datetime_now)
print("datetime_utc:", datetime_utc)
print("datetime_utc2:", datetime_utc2)Output:
datetime_now: 2021-06-27 11:06:14.077584
datetime_utc: 2021-06-27 02:06:14.077594
datetime_utc2: 2021-06-27 02:06:14.077598+00:002. datetime 객체에 timezone 적용
- UTC에 timezone을 적용하여 국가별로 시간을 다르게 표현할 수 있습니다.
- 한국은 UTC에서 영국과
+9시간의 차이가 나기 때문에timezone(timedelta(hours=9))으로 timezone 객체를 만듭니다. datetime.astimezone()으로 datetime 객체에 timezone을 적용할 수 있습니다.
from datetime import datetime, timedelta, timezone
datetime_utc = datetime.utcnow()
timezone_kst = timezone(timedelta(hours=9))
datetime_kst = datetime_utc.astimezone(timezone_kst)
print("datetime_utc:", datetime_utc)
print("datetime_kst:", datetime_kst)
timezone_tw = timezone(timedelta(hours=8))
datetime_tw = datetime_utc.astimezone(timezone_tw)
print("datetime_tw:", datetime_tw)Output:
datetime_utc: 2021-06-27 02:08:46.887454
datetime_kst: 2021-06-27 02:08:46.887454+09:00
datetime_tw: 2021-06-27 01:08:46.887454+08:00대만은 UTC 기준으로 영국과 +8시간의 차이가 납니다.
timedelta(hours=8)으로 timezone을 정의할 수 있습니다.
3. timezone이 적용된 datetime 객체 생성
timezone이 적용된 datetime 객체를 생성할 때, 생성자 인자에 timezone 객체를 전달하면 됩니다.
from datetime import datetime, timedelta, timezone
timezone_tw = timezone(timedelta(hours=8))
datetime_taipei = datetime(2021, 6, 27, 9, 20, 13, 223000, tzinfo=timezone_tw)
print("datetime_taipei:", datetime_taipei)
timezone_jst = timezone(timedelta(hours=9))
datetime_jst = datetime(2021, 6, 27, 9, 20, 13, 223000, tzinfo=timezone_jst)
print("datetime_jst:", datetime_jst)Output:
datetime_taipei: 2021-06-27 09:20:13.223000+08:00
datetime_jst: 2021-06-27 09:20:13.223000+09:00References
Loading script...
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 첫번째 요소 제거
- Python - 리스트의 마지막 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)