datetime을 사용하여 Python에서 날짜와 시간을 처리하는 방법

날짜와 시간을 처리하는 것은 프로그래밍에서 일반적인 작업이며, Python은 날짜와 시간을 처리하는 datetime이라는 내장 모듈을 제공합니다. 이 모듈은 날짜, 시간 및 시간 간격을 조작하는 클래스를 제공하여 날짜 산술을 수행하고, 날짜를 포맷하고, 시간대를 관리하는 것을 더 쉽게 만듭니다. 이 문서에서는 datetime 모듈을 사용하여 Python에서 날짜와 시간을 효과적으로 처리하는 방법을 살펴보겠습니다.

datetime 시작하기

datetime 모듈은 datetime.date, datetime.time, datetime.datetime, datetime.timedelta, datetime.tzinfo와 같은 여러 클래스를 제공합니다. 이러한 클래스를 사용하면 날짜, 시간 및 시간 간격을 처리할 수 있습니다.

datetime 모듈을 사용하려면 다음과 같이 가져와야 합니다.

import datetime

날짜 작업

date 클래스를 사용하여 날짜 객체를 만들 수 있습니다. 여기에는 세 개의 매개변수가 필요합니다: 년, 월, 일.

from datetime import date

# Create a date object
my_date = date(2023, 9, 4)
print(my_date)  # Output: 2023-09-04

또한 연도, 월, 일 등 날짜의 개별 구성 요소에 액세스할 수도 있습니다.

print(my_date.year)   # Output: 2023
print(my_date.month)  # Output: 9
print(my_date.day)    # Output: 4

시간으로 작업하기

time 클래스를 사용하면 시간 객체를 만들 수 있습니다. 시간, 분, 초, 마이크로초(선택 사항)가 필요합니다.

from datetime import time

# Create a time object
my_time = time(14, 30, 45)
print(my_time)  # Output: 14:30:45

날짜와 유사하게 시간 객체의 개별 구성 요소에 액세스할 수 있습니다.

print(my_time.hour)   # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45

datetime을 사용하여 날짜와 시간 결합

datetime 클래스는 날짜와 시간을 단일 객체로 결합합니다. 년, 월, 일, 시, 분, 초, 마이크로초(선택 사항)를 전달하여 datetime 객체를 만들 수 있습니다.

from datetime import datetime

# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime)  # Output: 2023-09-04 14:30:45

datetime 객체의 날짜 및 시간 구성 요소에 모두 액세스할 수 있습니다.

print(my_datetime.date())  # Output: 2023-09-04
print(my_datetime.time())  # Output: 14:30:45

현재 날짜 및 시간 가져오기

datetime 모듈은 현재 날짜, 시간 또는 둘 다를 가져오는 편리한 방법을 제공합니다.

# Current date
today = date.today()
print(today)  # Output: (current date)

# Current date and time
now = datetime.now()
print(now)  # Output: (current date and time)

timedelta를 사용한 날짜 산술

timedelta 클래스는 두 날짜 또는 시간의 차이인 기간을 나타냅니다. 날짜에서 날짜를 더하거나 빼는 것과 같은 날짜 산술을 수행할 수 있습니다.

from datetime import timedelta

# Create a timedelta object
delta = timedelta(days=7)

# Add 7 days to the current date
future_date = today + delta
print(future_date)

두 날짜의 차이를 계산할 수도 있습니다.

# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days)  # Output: 7

날짜 및 시간 형식 지정

strftime() 메서드를 사용하면 날짜나 시간을 문자열로 포맷할 수 있습니다. 이 메서드는 포맷 코드를 사용하여 원하는 포맷을 지정합니다.

# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date)  # Output: September 04, 2023

일반적인 형식 코드는 다음과 같습니다.

  • %Y - 년도(예: 2023)
  • %m - 0으로 채워진 10진수 형태의 월(예: 09)
  • %d - 0으로 채워진 10진수 형태의 일자(예: 04)
  • %H - 0으로 채워진 10진수 형태의 시간(24시간제)(예: 14)
  • %M - 0으로 채워진 10진수 형태의 분(예: 30)
  • %S - 0으로 채워진 10진수 형태의 초(예: 45)

문자열에서 날짜 구문 분석

strptime() 메서드를 사용하면 날짜 문자열의 형식에 따라 문자열을 datetime 객체로 변환할 수 있습니다.

# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)

시간대 작업

datetime 모듈은 pytz 라이브러리를 사용하여 시간대 인식 datetime 객체를 지원합니다. 시간대를 사용하려면 pytz을 설치해야 합니다.

pip install pytz

그런 다음 datetime 객체에 시간대를 할당할 수 있습니다.

from datetime import datetime
import pytz

# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)

결론

Python의 datetime 모듈은 날짜와 시간을 처리하기 위한 강력한 도구를 제공합니다. 여기에는 날짜 및 시간 객체를 만들고, 포맷하고, 구문 분석하고, 산술 연산을 수행하는 것이 포함됩니다. 날짜를 조작하거나, 시간대를 다루거나, 표시를 위해 날짜와 시간을 포맷해야 하는 경우, datetime 모듈이 처리해 드립니다.