Python으로 로컬 시간 문자열을 UTC로 변환하는 방법
Python으로 로컬 시간 문자열을 UTC로 변환하는 방법
라이브러리 가져오기:
먼저 datetime
및 pytz
라이브러리를 가져와야 합니다.
import datetime
import pytz
로컬 시간 문자열 파싱:
다음으로 datetime.strptime()
함수를 사용하여 로컬 시간 문자열을 datetime
객체로 파싱합니다. 이때, 문자열 형식과 일치하는 올바른 형식 문자열을 지정해야 합니다.
local_time_string = "2024-07-04 12:00:00" # 예시
local_datetime = datetime.strptime(local_time_string, "%Y-%m-%d %H:%M:%S")
로컬 시간대 정보 가져오기:
현재 로컬 시간대 정보를 가져옵니다.
local_timezone = pytz.timezone('Asia/Seoul') # 예시: KST (대한민국 표준시)
로컬 시간 객체를 UTC로 변환:
astimezone()
메서드를 사용하여 로컬 시간 객체를 UTC 시간대로 변환합니다.
utc_datetime = local_datetime.astimezone(pytz.utc)
UTC 시간 문자열 출력:
strftime()
함수를 사용하여 UTC 시간 객체를 원하는 형식 문자열로 변환하여 출력합니다.
utc_time_string = utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(utc_time_string) # 예시 출력: 2024-07-03 23:00:00
예시 코드:
import datetime
import pytz
local_time_string = "2024-07-04 12:00:00"
local_datetime = datetime.strptime(local_time_string, "%Y-%m-%d %H:%M:%S")
local_timezone = pytz.timezone('Asia/Seoul')
utc_datetime = local_datetime.astimezone(pytz.utc)
utc_time_string = utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(utc_time_string)
참고:
- 위 코드는 예시이며, 실제 사용 시에는 상황에 맞게 변경해야 할 수 있습니다.
pytz
라이브러리에는 다양한 시간대 정보가 포함되어 있습니다. 사용자의 로컬 시간대에 맞는 올바른 값을 사용해야 합니다.
예제 코드: Python으로 로컬 시간 문자열을 UTC로 변환
import datetime
import pytz
# 로컬 시간 문자열 정의
local_time_string = "2024-07-04 12:00:00" # 예시: 2024년 7월 4일 오전 12시
# 로컬 시간 문자열 파싱
local_datetime = datetime.strptime(local_time_string, "%Y-%m-%d %H:%M:%S")
# 로컬 시간대 정보 가져오기
local_timezone = pytz.timezone('Asia/Seoul') # 예시: KST (대한민국 표준시)
# 로컬 시간 객체를 UTC로 변환
utc_datetime = local_datetime.astimezone(pytz.utc)
# UTC 시간 문자열 출력
utc_time_string = utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(f"로컬 시간: {local_time_string}")
print(f"UTC 시간: {utc_time_string}")
실행 결과:
로컬 시간: 2024-07-04 12:00:00
UTC 시간: 2024-07-03 23:00:00
설명:
- 라이브러리 가져오기:
- 로컬 시간 문자열 정의:
- 로컬 시간대 정보 가져오기:
- 로컬 시간 객체를 UTC로 변환:
- UTC 시간 문자열 출력:
Python에서 로컬 시간 문자열을 UTC로 변환하는 대체 방법
datetime.datetime.now() 함수 사용:
다음 코드는 datetime.datetime.now()
함수를 사용하여 현재 로컬 시간을 가져오고, astimezone()
메서드를 사용하여 UTC로 변환하는 방법을 보여줍니다.
import datetime
import pytz
local_datetime = datetime.datetime.now()
local_timezone = pytz.timezone('Asia/Seoul') # 예시: KST (대한민국 표준시)
utc_datetime = local_datetime.astimezone(pytz.utc)
utc_time_string = utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(f"로컬 시간: {local_datetime}")
print(f"UTC 시간: {utc_time_string}")
- 이 코드는
datetime.datetime.now()
함수를 사용하여 현재 시각을 로컬 시간 기준으로 가져옵니다.
time.mktime() 및 gmtime() 함수 사용:
다음 코드는 time.mktime()
및 gmtime()
함수를 사용하여 로컬 시간 문자열을 POSIX 타임스탬프로 변환한 다음, datetime.gmtime()
함수를 사용하여 UTC 시간 정보를 추출하는 방법을 보여줍니다.
import datetime
import time
import pytz
local_time_string = "2024-07-04 12:00:00"
local_datetime = datetime.strptime(local_time_string, "%Y-%m-%d %H:%M:%S")
timestamp = time.mktime(local_datetime.timetuple())
utc_time = datetime.gmtime(timestamp)
utc_time_string = datetime.strftime(utc_time, "%Y-%m-%d %H:%M:%S")
print(f"로컬 시간: {local_time_string}")
print(f"UTC 시간: {utc_time_string}")
- 이 코드는
time.mktime()
함수를 사용하여 로컬 시간 문자열을 POSIX 타임스탬프로 변환합니다. - 그런 다음
datetime.gmtime()
함수를 사용하여 POSIX 타임스탬프를 기반으로 UTC 시간 정보를 추출합니다.
dateutil 라이브러리 사용:
dateutil
라이브러리는 날짜와 시간을 처리하는 데 유용한 다양한 함수와 클래스를 제공합니다. 다음 코드는 dateutil
라이브러리를 사용하여 로컬 시간 문자열을 UTC로 변환하는 방법을 보여줍니다.
import datetime
from dateutil import parser
local_time_string = "2024-07-04 12:00:00"
local_datetime = parser.parse(local_time_string)
utc_datetime = local_datetime.astimezone(pytz.utc)
utc_time_string = utc_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(f"로컬 시간: {local_time_string}")
print(f"UTC 시간: {utc_time_string}")
- 이 코드는
dateutil.parser.parse()
함수를 사용하여 로컬 시간 문자열을datetime
객체로 변환합니다.
pytz
라이브러리
python datetime utc