datetime, timestamp, 파이썬 시간

임승환·2024년 10월 18일

Python

목록 보기
12/20

프로젝트를 하다 보면, timestamp와 같이 시간을 기준으로 알고리즘을 작성하는 경우가 많이 있다.
하지만 시간과 관련된 라이브러리는 다양하고, 사용법이 다르다, 시간 절약을 위해 정리해두자.

zoneinfo

pytz의 timezone 'Asia/Seoul'의 시차가 +8:28분이다 이 경우 참고하자.
Python3.9이전에는 서울의 경우 1920을 빼주어서 계산하고
Python3.9부터는 zoneinfo가 있으니까 해당 라이브러리를 활용해서 코드를 작성하자

from zoneinfo import ZoneInfo
from datetime import datetime

dt = datetime(2012, 10, 28, 2, 0, tzinfo=ZoneInfo('Asia/Seoul'))
print(dt)   # 2012-10-28 02:00:00+09:00

# 아래의 strptime과 합쳐서 사용하는 코드
dt_chk = datetime.strptime(chk_time, '%Y-%m-%d %H:%M').replace(tzinfo=zoneinfo.ZoneInfo('Asia/Seoul'))

strftime, strptime

날짜와 시간(datetime)을 문자열로 출력하려면 strftime
날짜와 시간 형식의 문자열을 datetime으로 변환하려면 strptime을 사용하면 된다.

import datetime
now = datetime.datetime.now()  

date = now.strftime('%Y-%m-%d')
print(date)   # 2024-10-18

time = now.strftime('%H:%M:%S')
print(time)   # 16:20:12

datetime = now.strftime('%Y-%m-%d %H:%M:%S')
print(datetime)   # 2024-10-18 16:20:12

위와 같이 datetime을 문자열로 변환할 수 있고, datetime.strftime(형식)으로 사용할 수 있다.


다음으로 strptime의 경우

import datetime
str_datetime = '2021-04-08 21:31:48'
currdate = datetime.datetime.strptime(str_datetime, '%Y-%m-%d %H:%M:%S')

print(type(currdate))  # <class 'datetime.datetime'>

이런 식으로 사용할 수 있다.


그 외 예시

t_time = dt_object.strftime('%m월 %d일 %H시 %M분')  # 결과값 시간
chk_time = dt_object.strftime('%Y-%m-%d %H:%M:%S')  # 입력값 시간

mktime의 경우, 지정된 로컬 시간을 불러온다.

참고 사이트
https://taptorestart.tistory.com/entry/Q-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%83%80%EC%9E%84%EC%A1%B4-%EC%9C%A0%EB%AA%85-pytz-%ED%8C%A9%ED%82%A4%EC%A7%80%EC%9D%98-%EC%84%9C%EC%9A%B8-%ED%83%80%EC%9E%84%EC%A1%B4%EC%9D%B4-LMT082800%EC%9C%BC%EB%A1%9C-%EB%82%98%EC%98%A4%EB%8A%94-%EC%9D%B4%EC%9C%A0%EB%8A%94

profile
주니어 개발자

0개의 댓글