5장: 날짜와 시간
파이썬에서는 날짜와 시간을 다루기 위해 다양한 모듈과 함수를 제공합니다. 이 장에서는 파이썬의 `datetime` 모듈을 사용하여 날짜와 시간을 처리하는 방법에 대해 알아보겠습니다.
#### 5.1 기본 datetime 객체 사용
`datetime` 모듈을 사용하여 현재 날짜와 시간을 얻을 수 있습니다. `datetime.datetime.now()` 함수는 현재 날짜와 시간을 반환합니다.
```python
import datetime
# 현재 날짜와 시간
now = datetime.datetime.now()
print(now) # 출력 예시: 2024-05-30 14:35:45.123456
```
#### 5.2 날짜와 시간의 포맷팅
`strftime` 메서드를 사용하여 날짜와 시간을 원하는 형식으로 포맷팅할 수 있습니다. 포맷 코드의 예시는 다음과 같습니다:
- `%Y`: 4자리 연도
- `%m`: 2자리 월
- `%d`: 2자리 일
- `%H`: 2자리 시간(24시간 형식)
- `%M`: 2자리 분
- `%S`: 2자리 초
```python
# 날짜와 시간 포맷팅
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # 출력 예시: 2024-05-30 14:35:45
```
#### 5.3 문자열을 datetime 객체로 파싱하기
`strptime` 메서드를 사용하여 문자열을 `datetime` 객체로 변환할 수 있습니다. 이때, 문자열의 형식과 일치하는 포맷 코드를 제공해야 합니다.
```python
date_string = "2024-05-30 14:35:45"
date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(date_object) # 출력: 2024-05-30 14:35:45
```
#### 5.4 날짜와 시간의 차이 계산
두 `datetime` 객체 간의 차이를 계산할 수 있으며, 결과는 `timedelta` 객체로 반환됩니다.
```python
# 두 날짜 간의 차이 계산
start_date = datetime.datetime(2024, 1, 1)
end_date = datetime.datetime(2024, 12, 31)
difference = end_date - start_date
print(difference) # 출력: 364 days, 0:00:00
```
#### 5.5 시간대 전환
`pytz` 모듈을 사용하여 시간대를 처리할 수 있습니다. `pytz` 모듈을 설치하려면 다음 명령을 사용합니다:
```sh
pip install pytz
```
`pytz` 모듈을 사용하여 시간대를 지정하고, `astimezone` 메서드를 사용하여 시간대를 변환할 수 있습니다.
```python
import pytz
# 시간대 설정
timezone = pytz.timezone("Asia/Seoul")
localized_date = timezone.localize(now)
print(localized_date) # 출력 예시: 2024-05-30 14:35:45+09:00
# 다른 시간대로 변환
new_timezone = pytz.timezone("America/New_York")
new_timezone_date = localized_date.astimezone(new_timezone)
print(new_timezone_date) # 출력 예시: 2024-05-30 01:35:45-04:00
```
#### 5.6 날짜 산술
`timedelta` 객체를 사용하여 날짜에 특정 기간을 더하거나 뺄 수 있습니다.
```python
# 날짜에 10일 더하기
future_date = now + datetime.timedelta(days=10)
print(future_date) # 출력 예시: 2024-06-09 14:35:45.123456
# 날짜에서 5일 빼기
past_date = now - datetime.timedelta(days=5)
print(past_date) # 출력 예시: 2024-05-25 14:35:45.123456
```
#### 5.7 유닉스 타임스탬프 변환
유닉스 타임스탬프는 1970년 1월 1일 00:00:00 UTC 이후의 초를 나타냅니다. `datetime` 모듈을 사용하여 타임스탬프를 `datetime` 객체로 변환할 수 있습니다.
```python
# 유닉스 타임스탬프를 datetime 객체로 변환
timestamp = 1596278400
date_from_timestamp = datetime.datetime.fromtimestamp(timestamp)
print(date_from_timestamp) # 출력: 2020-08-01 00:00:00
```
이상으로, 파이썬에서 날짜와 시간을 처리하는 방법에 대해 알아보았습니다. 다음 장에서는 파일 입출력에 대해 더 자세히 알아보겠습니다. 질문이나 요청사항이 있으시면 댓글로 남겨주세요!
---
이 글의 내용은 GoalKicker.com의 Python Notes for Professionals 책을 참조하였습니다.
댓글
댓글 쓰기