Python Datetime: 날짜 및 시간 작업

Python에서 날짜, 시간, 시간대 및 계산을 처리하는 방법을 알아보세요. 날짜/시간 및 timedelta를 사용하여 형식 지정, 구문 분석 및 산술을 마스터합니다.

에디터에서 사용해 보세요

개요

날짜와 시간을 처리하는 것은 윤년, 일광 절약 시간제 조정 및 다양한 시간대 형식으로 인해 소프트웨어 개발에서 악명 높은 과제입니다. Python은 내장된 `datetime` 모듈을 통해 이러한 문제를 해결합니다. 이 모듈은 시간 데이터를 명확하게 표현하고 조작하여 날짜 계산을 간단하게 만드는 `date`, `time`, `datetime` 및 `timezone`과 같은 강력한 객체 클래스 세트를 제공합니다.

가장 일반적인 작업 중 하나는 날짜를 문자열로 변환(형식 지정)하고 문자열을 날짜로 변환(구문 분석)하는 것입니다. Python은 이를 위해 두 가지 주요 방법을 사용합니다: `.strftime()`(문자열 형식 시간)은 형식 지정 코드(연도는 `%Y`, 월은 `%m`, 일은 `%d`와 같은)를 사용하여 날짜/시간 객체를 읽을 수 있는 문자열로 변환합니다. 반대로 `datetime.strptime()`(문자열 구문 분석 시간)은 일치하는 형식 템플릿을 기반으로 원시 문자열 입력을 날짜/시간 개체로 구문 분석합니다. 이는 로그 또는 API 입력을 읽을 때 중요합니다.

날짜 계산 수행도 'timedelta' 개체를 사용하여 완벽하게 지원됩니다. 'timedelta'는 기간(예: 7일, 4시간)을 나타냅니다. 'datetime'에서 'timedelta'를 더하거나 빼서 과거 또는 미래 날짜를 계산할 수 있습니다(예: 만료 날짜 결정). 여러 시간대를 사용하여 작업할 때 시간대 인식 개체(예: `zoneinfo` 또는 `timezone.utc`)를 사용하는 것은 다양한 서버 위치에서 날짜 비교를 정확하게 유지하는 데 중요합니다.

코드 및 실행 출력

문자열을 datetime 객체로 구문 분석하고 timedelta를 사용하여 향후 마감일을 계산합니다.

from datetime import datetime, timedelta

# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")

# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")

# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")

# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")
터미널 출력
Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04

단계별 구현

  • 평가판 만료 및 청구 날짜 계산
  • 서버 액세스 로그 내의 타임스탬프 문자열 구문 분석
  • 자동화된 크론 작업 또는 반복 보고서 예약

자주 묻는 질문

Naive와 Aware datetime 객체란 무엇입니까?

순진한 datetime 객체에는 시간대 정보가 포함되지 않는 반면, recognition datetime 객체에는 시간대 오프셋이 포함되어 있어 국제 시간 계산에 안전합니다.

두 날짜의 차이를 어떻게 계산하나요?

한 날짜/시간 객체를 다른 객체에서 빼면 그 사이의 정확한 기간을 나타내는 timedelta 객체가 반환됩니다.

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.