파이썬 datetime 날짜 계산과 형식 변환 방법

파이썬 datetime 날짜 계산과 형식 변환 방법

작성자

카테고리:

문제 상황

웹 서비스나 데이터 분석 작업에서 날짜 데이터를 다룰 때 연산과 문자열 변환 문제가 자주 발생합니다. 데이터베이스에 저장된 문자열 형태의 날짜를 계산하지 못하거나 원하는 출력 형식으로 바꾸지 못해 작업이 막힙니다. 단순 숫자 연산으로는 윤년이나 월말 일수가 반영되지 않아 잘못된 날짜 결과가 나옵니다.

해결 코드

from datetime import datetime, timedelta

now = datetime(2026, 3, 30, 14, 30, 0)

future_date = now + timedelta(days=7)
past_date = now - timedelta(days=30)

formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
formatted_future = future_date.strftime("%Y년 %m월 %d일")

date_str = "2026-12-25 09:00:00"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")

print(f"기준 일시: {formatted_now}")
print(f"7일 뒤: {formatted_future}")
print(f"30일 전: {past_date.strftime('%Y-%m-%d')}")
print(f"문자열 변환 결과: {parsed_date}")

코드 설명

  1. 날짜와 시간 연산을 수행하기 위해 표준 라이브러리의 datetime과 timedelta를 불러옵니다.
  2. 년, 월, 일, 시, 분, 초 값을 직접 지정하여 기준이 되는 날짜 객체를 생성합니다.
  3. timedelta에 일 수 파라미터를 전달하고 더하거나 빼서 미래와 과거 날짜를 구합니다.
  4. strftime 서식 문자열을 지정하여 날짜 객체를 원하는 형태의 텍스트로 변환합니다.
  5. strptime을 사용해 문자열로 작성된 날짜 데이터를 연산 가능한 날짜 객체로 변환합니다.

실행 결과

2026년 3월 30일을 기준으로 7일 뒤는 2026년 04월 06일로 계산되고 30일 전은 2026-02-28로 계산되어 출력됩니다.

기준 일시: 2026-03-30 14:30:00
7일 뒤: 2026년 04월 06일
30일 전: 2026-02-28
문자열 변환 결과: 2026-12-25 09:00:00

정리

  • timedelta를 날짜 객체에 더하거나 빼면 윤년과 월말 일수가 적용된 날짜가 계산됩니다.
  • strftime을 사용하면 날짜 데이터를 원하는 출력 형식의 문자열로 맞출 수 있습니다.
  • strptime을 사용하면 텍스트로 입력된 날짜를 파이썬 날짜 객체로 바꿔 연산에 활용할 수 있습니다.
  • 시간 단위 연산이 필요할 때는 timedelta에 hours나 minutes 인자를 넘겨 처리합니다.
  • 대소문자 서식 기호에 따라 연도, 월, 분, 초 구분이 달라지므로 지정자 확인이 필요합니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다