반응형
안녕하세요. BlockDMask 입니다.
오늘은 파이썬에서 날짜와 시간을 다룰 수 있는 내장 모듈인 datetime
에 대해 알아보겠습니다.
현재 날짜를 가져오는 법부터 날짜 덧셈, 차이 계산, 포맷 변경, 문자열 변환 등
실제 프로젝트에서 자주 쓰이는 예제 중심으로 하나하나 정리해볼게요.
1. datetime 모듈 불러오기
import datetime
또는 아래처럼 필요한 것만 불러올 수도 있어요:
from datetime import datetime, timedelta
2. 현재 날짜 및 시간 가져오기
from datetime import datetime
now = datetime.now()
print(now)
출력 예:
2025-03-22 14:25:37.456789
3. 오늘 날짜만 가져오기 (date.today())
from datetime import date
today = date.today()
print(today)
출력: 2025-03-22
4. 날짜 객체에서 연, 월, 일 가져오기
print("연:", today.year)
print("월:", today.month)
print("일:", today.day)
5. 날짜 포맷 변경 (strftime)
formatted = now.strftime("%Y년 %m월 %d일 %H시 %M분 %S초")
print(formatted)
출력:
2025년 03월 22일 14시 25분 37초
코드 | 의미 |
---|---|
%Y | 연도 (예: 2025) |
%m | 월 (01~12) |
%d | 일 (01~31) |
%H | 시 (00~23) |
%M | 분 (00~59) |
%S | 초 (00~59) |
6. 문자열을 날짜 객체로 변환 (strptime)
date_str = "2025-04-01"
dt = datetime.strptime(date_str, "%Y-%m-%d")
print(dt)
출력:
2025-04-01 00:00:00
7. 날짜 덧셈 및 뺄셈 (timedelta)
from datetime import timedelta
seven_days_after = today + timedelta(days=7)
seven_days_before = today - timedelta(days=7)
print("7일 뒤:", seven_days_after)
print("7일 전:", seven_days_before)
8. 시, 분, 초 단위 덧셈도 가능
one_hour_later = now + timedelta(hours=1)
thirty_minutes_ago = now - timedelta(minutes=30)
print("1시간 뒤:", one_hour_later)
print("30분 전:", thirty_minutes_ago)
9. 날짜 차이 계산
start = datetime(2025, 3, 1)
end = datetime(2025, 3, 22)
diff = end - start
print("날짜 차이:", diff.days, "일")
10. 날짜를 기준으로 조건문 쓰기
if today > datetime(2025, 3, 15).date():
print("오늘은 3월 15일 이후입니다.")
else:
print("아직 3월 15일 전입니다.")
11. 달의 마지막 날짜 구하기 (calendar 모듈)
import calendar
year = 2025
month = 2
last_day = calendar.monthrange(year, month)[1]
print(f"{year}년 {month}월의 마지막 날은 {last_day}일")
12. 하루씩 증가하며 날짜 루프 돌기
from datetime import timedelta
start_date = datetime(2025, 3, 1)
end_date = datetime(2025, 3, 5)
current = start_date
while current <= end_date:
print(current.strftime("%Y-%m-%d"))
current += timedelta(days=1)
13. 날짜 비교 실전 예제 (이벤트 종료일 판단)
deadline = datetime(2025, 3, 25)
now = datetime.now()
if now > deadline:
print("이벤트가 종료되었습니다.")
else:
print("아직 이벤트 기간입니다.")
14. 시간 간격 차이 (초, 분 단위)
start = datetime(2025, 3, 22, 14, 0, 0)
end = datetime(2025, 3, 22, 15, 30, 0)
diff = end - start
print("초 단위:", diff.total_seconds())
print("분 단위:", diff.total_seconds() / 60)
결론
datetime.now()
,date.today()
로 현재 날짜/시간 가져오기strftime()
으로 포맷 변경,strptime()
으로 문자열 변환timedelta
를 이용한 날짜 계산- 날짜 반복, 조건 비교, 이벤트 판단 등 다양한 실전 활용 가능
이상, 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지)에 대해 예제 중심으로 정리해보았습니다.
오늘도 읽어주셔서 감사합니다.
반응형
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬 클래스 변수 vs 인스턴스 변수 차이 (0) | 2025.04.03 |
---|---|
[Python] 파이썬 클래스 초보자 가이드 (__init__, self) (1) | 2025.04.01 |
[Python] 파이썬 리스트 컴프리헨션 vs for문 (0) | 2025.03.29 |
[Python] 파이썬 *args와 **kwargs 알아보기 (0) | 2025.03.27 |
[Python] 파이썬에서 파일 경로 다루기 (`os` vs `pathlib`) (0) | 2025.03.25 |
[Python] 파이썬 zip() 함수 활용법 (0) | 2025.03.23 |
[Python] 파이썬 딕셔너리에서 get() vs [] 차이점 (0) | 2025.03.19 |
[Python] 파이썬 with open() 을 써야하는 이유 (0) | 2025.03.08 |