반응형

Python은 날짜와 시간을 다루기 위한 강력한 모듈들을 제공합니다. datetime, time, calendar 모듈을 활용하면 다양한 날짜와 시간 작업을 간단히 수행할 수 있습니다. 이 글에서는 날짜와 시간을 다루는 기본적인 방법, 시간 계산, 특정 포맷 변환 등 유용한 기능들을 소개합니다.


1. datetime 모듈: 날짜와 시간 처리의 기본

datetime 모듈은 날짜와 시간 정보를 생성, 조작, 포맷팅 하는 데 사용됩니다.

날짜와 시간 생성

from datetime import datetime

# 현재 날짜와 시간
now = datetime.now()
print("현재 날짜와 시간:", now)

# 특정 날짜와 시간
specific_date = datetime(2024, 12, 25, 15, 30)
print("특정 날짜와 시간:", specific_date)

날짜와 시간 분리

datetime 객체에서 연도, 월, 일, 시간 등을 추출할 수 있습니다.

print("연도:", now.year)
print("월:", now.month)
print("일:", now.day)
print("시간:", now.hour)
print("분:", now.minute)
print("초:", now.second)

날짜와 시간 포맷팅

strftime 메서드를 사용하여 날짜와 시간을 문자열로 포맷할 수 있습니다.

formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("포맷된 날짜와 시간:", formatted_date)

포맷 코드:

  • %Y: 4자리 연도
  • %m: 2자리 월
  • %d: 2자리 일
  • %H: 24시간 형식의 시간
  • %M: 분
  • %S: 초

2. time 모듈: 시간 조작

time 모듈은 주로 시간 간격, Unix 타임스탬프를 처리하거나 특정 작업을 지연시키는 데 사용됩니다.

현재 시간 (Unix 타임스탬프)

import time

# 현재 시간
timestamp = time.time()
print("현재 타임스탬프:", timestamp)

시간 지연

time.sleep()를 사용하여 프로그램 실행을 일시 중지할 수 있습니다.

print("3초 대기 중...")
time.sleep(3)
print("다시 실행")

 


3. calendar 모듈: 달력 작업

calendar 모듈은 달력을 생성하거나 특정 날짜의 요일을 확인하는 데 유용합니다.

연도와 월의 달력 출력

import calendar

# 2024년 11월의 달력
print(calendar.month(2024, 11))

특정 날짜의 요일 확인

# 요일 반환 (0: 월요일, 6: 일요일)
weekday = calendar.weekday(2024, 11, 11)
print("2024년 11월 11일의 요일:", calendar.day_name[weekday])  # "Monday"

윤년 확인

# 윤년인지 확인
is_leap = calendar.isleap(2024)
print("2024년은 윤년인가요?", is_leap)


4. 시간 계산

timedelta 객체를 사용하면 날짜와 시간 간격을 쉽게 계산할 수 있습니다.

날짜 더하기 및 빼기

from datetime import timedelta

# 현재 날짜
today = datetime.now()

# 7일 후
next_week = today + timedelta(days=7)
print("7일 후:", next_week)

# 30일 전
last_month = today - timedelta(days=30)
print("30일 전:", last_month)

두 날짜 간의 차이

# 특정 날짜
future_date = datetime(2025, 1, 1)

# 날짜 차이 계산
difference = future_date - today
print("2025년 1월 1일까지 남은 일수:", difference.days)


5. 문자열과 날짜 간 변환

문자열 → 날짜 (strptime)

strptime 메서드를 사용해 문자열을 datetime 객체로 변환할 수 있습니다.

date_string = "2024-11-11 15:30:00"
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print("문자열에서 변환된 날짜:", parsed_date)

날짜 → 문자열 (strftime)

반대로 datetime 객체를 포맷팅 하여 문자열로 변환할 수 있습니다.

formatted_string = parsed_date.strftime("%A, %d %B %Y")
print("포맷된 문자열:", formatted_string)  # 예: "Monday, 11 November 2024"


6. 타임존 처리

pytz 라이브러리를 사용하면 타임존을 쉽게 다룰 수 있습니다.

타임존 추가

pip install pytz
from datetime import datetime
import pytz

# UTC 시간
utc_time = datetime.now(pytz.UTC)
print("UTC 시간:", utc_time)

# 특정 타임존으로 변환
korea_time = utc_time.astimezone(pytz.timezone("Asia/Seoul"))
print("한국 시간:", korea_time)


Python의 datetime, time, calendar 모듈은 날짜와 시간을 다루는 데 필요한 강력한 도구를 제공합니다. 날짜와 시간을 계산하거나 포맷팅, 변환하는 작업을 손쉽게 처리할 수 있으며, 타임존 처리 및 시간 간격 계산 같은 고급 작업도 가능합니다.

반응형