<개인공부>/[Python]

[Python] 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지)

BlockDMask 2025. 3. 31. 08:32
반응형

안녕하세요. 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 기본부터 실전까지)에 대해 예제 중심으로 정리해보았습니다.
오늘도 읽어주셔서 감사합니다.

반응형