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
모듈이 처리해 드립니다.