반응형
Python에서 날짜와 시간을 다루는 실용적인 예제입니다.
어제 날짜, 지난달, 지난주의 기간을 구하고 UTC를 KST로 변환하는 방법에 대해서 알아 보겠습니다.
필요한 라이브러리
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
from dateutil.rrule import MO, TU, WE, TH, FR, SA, SU
from pytz import timezone
from pytz import utc
1. 어제 날짜 구하기
어제의 시작 시간(00:00:00)과 종료 시간(23:59:59)을 구하는 방법입니다
today = datetime.today()
yesterday_start = datetime(today.year, today.month, today.day, 0) + relativedelta(days=-1)
yesterday_end = datetime(today.year, today.month, today.day, 0) + relativedelta(seconds=-1)
print("Yesterday Start:", yesterday_start.strftime('%Y-%m-%d %H:%M:%S'))
print("Yesterday End: ", yesterday_end.strftime('%Y-%m-%d %H:%M:%S'))
2. 지난달 기간 구하기
지난달의 첫날과 마지막 날을 구하는 방법입니다.
last_month_first = datetime(today.year, today.month, 1) + relativedelta(months=-1)
last_month_last = datetime(today.year, today.month, 1) + relativedelta(seconds=-1)
print("Pre Month Start:", last_month_first.strftime('%Y-%m-%d %H:%M:%S'))
print("Pre Month End: ", last_month_last.strftime('%Y-%m-%d %H:%M:%S'))
3. 지난주 기간 구하기
지난주 일요일부터 토요일까지의 기간을 구하는 방법입니다.
last_sunday = datetime(today.year, today.month, today.day) + relativedelta(weeks=-1) + relativedelta(weekday=SU(-1))
last_saturday = datetime(today.year, today.month, today.day) + relativedelta(weekday=SU(-1)) + relativedelta(seconds=-1)
print("Pre Week Start:", last_sunday.strftime('%Y-%m-%d %H:%M:%S'))
print("Pre Week End: ", last_saturday.strftime('%Y-%m-%d %H:%M:%S'))
4. UTC를 KST로 변환하기
UTC 시간을 한국 시간(KST)으로 변환하는 방법입니다.
format = "%Y-%m-%d %H:%M:%S"
KST_TZ = timezone('Asia/Seoul')
UTC = datetime.utcnow().strftime(format)
KST = datetime.strptime(UTC, format).replace(tzinfo=utc).astimezone(KST_TZ).strftime(format)
print("UTC:", UTC)
print("KST:", KST)
주요 특징
- relativedelta 를 사용하여 날짜 계산을 쉽게 할 수 있습니다
- strftime()을 사용하여 원하는 형식으로 날짜를 출력할 수 있습니다
- pytz 라이브러리를 사용하여 시간대 변환을 처리할 수 있습니다
설치 필요한 패키지
이 코드를 실행하기 위해서는 다음 패키지들을 설치해야 합니다
pip install python-dateutil
pip install pytz
반응형
'프로그래밍 개발(Development) > Python' 카테고리의 다른 글
Python MultiProcessing Pool사용법 (2) | 2021.08.24 |
---|---|
입력 순서를 기억하는 Dictionary[OrderedDict] (0) | 2021.08.19 |
Python sort by value in dictionary list (0) | 2021.06.08 |
Python IP 정보 확인 하는 방법 (0) | 2020.12.01 |
Python List 값 중복 제거(Remove duplicate python list) (0) | 2020.10.19 |