파이썬에서 날짜와 시간을 다루기 위해 주로 사용되는 모듈은 datetime, time, calendar입니다. 날짜 및 시간을 조작하거나 포맷팅, 차이 계산, 현재 시간 가져오기 등의 작업을 쉽게 처리할 수 있습니다.
1. datetime 모듈 기본 사용
🔹 현재 날짜와 시간 가져오기: datetime.now()
| from datetime import datetime |
| |
| now = datetime.now() |
| print("현재 날짜와 시간:", now) |
| |
결과 예시:
| 현재 날짜와 시간: 2024-11-11 14:23:45.123456 |
| |
🔹 특정 날짜와 시간 생성: datetime()
| from datetime import datetime |
| |
| specific_date = datetime(2023, 1, 15, 14, 30, 0) # 년, 월, 일, 시, 분, 초 |
| print("특정 날짜와 시간:", specific_date) |
| |
결과:
| 특정 날짜와 시간: 2023-01-15 14:30:00 |
| |
🔹 날짜와 시간 포맷팅: strftime()
| formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") |
| print("포맷된 날짜와 시간:", formatted_date) |
| |
결과:
| 포맷된 날짜와 시간: 2024-11-11 14:23:45 |
| |
주요 포맷 코드:
- %Y: 4자리 연도 (2024)
- %m: 2자리 월 (01 ~ 12)
- %d: 2자리 일 (01 ~ 31)
- %H: 24시간 형식의 시 (00 ~ 23)
- %M: 분 (00 ~ 59)
- %S: 초 (00 ~ 59)
🔹 문자열을 날짜로 변환: strptime()
| from datetime import datetime |
| |
| date_string = "2024-11-11 14:23:45" |
| date_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S") |
| print("문자열을 날짜로 변환:", date_object) |
| |
결과:
| 문자열을 날짜로 변환: 2024-11-11 14:23:45 |
| |
🔹 날짜 차이 계산: timedelta
| from datetime import datetime, timedelta |
| |
| today = datetime.now() |
| future_date = today + timedelta(days=7) |
| past_date = today - timedelta(days=7) |
| |
| print("오늘:", today) |
| print("7일 후:", future_date) |
| print("7일 전:", past_date) |
| |
결과:
| 오늘: 2024-11-11 14:23:45 |
| 7일 후: 2024-11-18 14:23:45 |
| 7일 전: 2024-11-04 14:23:45 |
| |
2. time 모듈 사용
🔹 현재 시간 가져오기: time.time()
| import time |
| |
| timestamp = time.time() |
| print("현재 타임스탬프:", timestamp) |
| |
결과:
| 현재 타임스탬프: 1697100245.123456 |
| |
설명: time.time()은 1970년 1월 1일 00:00:00 UTC부터 현재까지의 초를 반환합니다.
🔹 타임스탬프를 읽기 쉬운 시간으로 변환: time.ctime()
| current_time = time.ctime() |
| print("현재 시간:", current_time) |
| |
결과:
| 현재 시간: Mon Nov 11 14:23:45 2024 |
| |
🔹 일정 시간 대기: time.sleep()
| print("3초 대기 중...") |
| time.sleep(3) |
| print("3초 후 출력") |
| |
결과:
3. calendar 모듈 사용
🔹 특정 월의 달력 출력: calendar.month()
| import calendar |
| |
| year = 2024 |
| month = 11 |
| print(calendar.month(year, month)) |
| |
결과:
| November 2024 |
| Mo Tu We Th Fr Sa Su |
| 1 2 3 |
| 4 5 6 7 8 9 10 |
| 11 12 13 14 15 16 17 |
| 18 19 20 21 22 23 24 |
| 25 26 27 28 29 30 |
| |
🔹 윤년 확인: calendar.isleap()
| print("2024년은 윤년인가요?", calendar.isleap(2024)) |
| |
결과:
4. 타임존 처리: pytz 모듈 사용
파이썬 기본 라이브러리에는 타임존 처리가 포함되지 않으므로, 타임존 처리를 위해 pytz 모듈을 사용합니다.
🔹 설치
🔹 타임존 적용 예제
| from datetime import datetime |
| import pytz |
| |
| |
| utc_now = datetime.now(pytz.utc) |
| print("현재 UTC 시간:", utc_now) |
| |
| |
| seoul_tz = pytz.timezone("Asia/Seoul") |
| seoul_time = utc_now.astimezone(seoul_tz) |
| print("서울 시간:", seoul_time) |
| |
결과:
| 현재 UTC 시간: 2024-11-11 05:23:45+00:00 |
| 서울 시간: 2024-11-11 14:23:45+09:00 |
| |
5. 날짜와 시간 요약
주요 모듈 및 함수
모듈 주요 함수/클래스 설명
datetime |
datetime.now() |
현재 날짜와 시간 가져오기 |
|
datetime.strptime() |
문자열을 날짜로 변환 |
|
datetime.strftime() |
날짜를 포맷팅된 문자열로 변환 |
|
timedelta |
날짜 및 시간 간격 계산 |
time |
time.time() |
타임스탬프 가져오기 |
|
time.sleep() |
특정 시간 대기 |
calendar |
calendar.month() |
특정 월의 달력 출력 |
|
calendar.isleap() |
윤년 여부 확인 |
pytz |
timezone |
특정 타임존 적용 |
파이썬의 날짜와 시간 관련 기능을 활용하면 시간 기반의 작업, 데이터 조작, 일정 관리 등 다양한 작업을 쉽게 처리할 수 있습니다.