728x90
반응형
Python에서 시간을 출력하거나 조작하는 방법은 다양한 모듈과 기능을 활용할 수 있습니다. 아래는 시간 출력을 위한 주요 방법들을 정리한 내용입니다.
1. time 모듈
Python의 기본 모듈로, UNIX 타임스탬프 기반의 시간 처리 기능을 제공합니다.
1.1 주요 함수
| time.time() | 현재 시간을 타임스탬프(1970년 1월 1일부터 초 단위 경과 시간)로 반환. |
| time.localtime() | 현재 시간 또는 지정한 타임스탬프를 지역 시간으로 변환. |
| time.gmtime() | 현재 시간 또는 지정한 타임스탬프를 UTC 시간으로 변환. |
| time.strftime(format) | time.struct_time 객체를 포맷 문자열에 따라 문자열로 변환. |
| time.strptime(string) | 포맷 문자열에 따라 시간 문자열을 time.struct_time으로 변환. |
| time.ctime() | 현재 시간 또는 타임스탬프를 문자열로 반환 (로케일에 따라 다름). |
| time.sleep(seconds) | 지정한 초만큼 대기 (프로그램 중단). |
1.2 시간 출력 예제
import time
# 현재 타임스탬프 출력
print(time.time()) # 1703839153.567837
# 현재 지역 시간
local_time = time.localtime()
print(local_time) # time.struct_time 객체
# 특정 포맷으로 출력
print(time.strftime("%Y-%m-%d %H:%M:%S", local_time)) # 2024-12-29 21:52:33
# ctime 활용
print(time.ctime()) # Sun Dec 29 21:52:33 2024
2. datetime 모듈
날짜와 시간 작업에 더 높은 수준의 기능을 제공합니다. datetime 객체를 사용하여 시간 조작 및 출력이 가능합니다.
2.1 주요 클래스
| datetime.date | 연, 월, 일을 나타내는 날짜 객체. |
| datetime.time | 시, 분, 초, 마이크로초를 나타내는 시간 객체. |
| datetime.datetime | 날짜와 시간을 모두 포함하는 객체. |
| datetime.timedelta | 날짜 및 시간의 차이를 나타내는 객체. |
2.2 주요 함수
| datetime.now() | 현재 지역 시간의 날짜와 시간을 반환. |
| datetime.utcnow() | 현재 UTC 시간의 날짜와 시간을 반환. |
| datetime.strptime() | 문자열을 특정 포맷으로 파싱해 datetime 객체로 변환. |
| datetime.strftime() | datetime 객체를 특정 포맷의 문자열로 변환. |
2.3 시간 출력 예제
from datetime import datetime
# 현재 시간
now = datetime.now()
print(now) # 2024-12-29 21:52:33.567837
# 특정 포맷으로 출력
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2024-12-29 21:52:33
# 문자열을 datetime 객체로 변환
dt = datetime.strptime("2024-12-29 21:52:33", "%Y-%m-%d %H:%M:%S")
print(dt) # 2024-12-29 21:52:33
3. calendar 모듈
달력 생성 및 날짜 계산에 사용됩니다.
3.1 주요 함수
| calendar.month(year, month) | 특정 월의 텍스트 달력을 반환. |
| calendar.isleap(year) | 윤년 여부를 반환. |
| calendar.weekday(year, month, day) | 특정 날짜의 요일(0: 월요일, 6: 일요일)을 반환. |
3.2 시간 출력 예제
import calendar
# 특정 연도의 달력 출력
print(calendar.calendar(2024))
# 특정 월의 달력 출력
print(calendar.month(2024, 12))
# 특정 날짜의 요일
print(calendar.weekday(2024, 12, 29)) # 6 (일요일)
4. pytz 모듈 (외부 라이브러리)
pytz는 타임존을 다룰 때 사용됩니다.
4.1 주요 기능
- 타임존을 설정하고 시간 변환 가능.
- 세계 여러 지역의 표준 시간대를 지원.
4.2 시간 출력 예제
from datetime import datetime
import pytz
# 현재 UTC 시간
utc_now = datetime.now(pytz.utc)
print(utc_now) # 2024-12-29 21:52:33.567837+00:00
# 특정 타임존 시간
korea = pytz.timezone("Asia/Seoul")
korea_now = utc_now.astimezone(korea)
print(korea_now) # 2024-12-30 06:52:33.567837+09:00
5. 시간 포맷 코드
strftime과 strptime에서 사용하는 포맷 코드는 다음과 같습니다.
| %Y | 4자리 연도 | 2024 |
| %m | 월 (01~12) | 12 |
| %d | 일 (01~31) | 29 |
| %H | 24시간 형식 시 (00~23) | 21 |
| %I | 12시간 형식 시 (01~12) | 09 |
| %M | 분 (00~59) | 52 |
| %S | 초 (00~59) | 33 |
| %A | 요일 (전체 이름) | Sunday |
| %a | 요일 (약자) | Sun |
| %B | 월 (전체 이름) | December |
| %b | 월 (약자) | Dec |
6. 실용적인 활용 예제
6.1 로그 파일 이름에 시간 추가
from datetime import datetime
log_filename = f"log_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt"
print(log_filename) # log_20241229_215233.txt
6.2 타임스탬프 계산
import time
start = time.time()
# 실행 시간 측정 코드
time.sleep(2)
end = time.time()
print(f"실행 시간: {end - start:.2f}초") # 실행 시간: 2.00초
6.3 특정 날짜의 요일 확인
from datetime import datetime
date = datetime(2024, 12, 29)
print(date.strftime("%A")) # Sunday
7. 각 모듈의 특징 비교
| time | 기본적인 시간 처리 (타임스탬프 기반). | 단순한 시간 출력 및 대기 작업. |
| datetime | 날짜와 시간의 조합, 높은 수준의 기능 제공. | 날짜 및 시간 조작, 포맷 출력. |
| calendar | 달력 및 날짜 계산. | 달력 생성, 윤년 계산, 요일 계산. |
| pytz | 타임존 지원. | 시간대 변환. |
위 내용을 기반으로 Python에서 시간을 출력하거나 조작할 때 필요에 따라 적절한 모듈과 방법을 선택하면 됩니다.
'Category > Python' 카테고리의 다른 글
| AsyncResult와 Multiprocessing.pool (0) | 2025.07.03 |
|---|---|
| [Python] asyncio example (0) | 2025.06.12 |
| Python의 with 문으로 컨텍스트 관리하기 (0) | 2024.12.08 |
| Python의 next() 함수로 이터레이터 객체 순회하기 (0) | 2024.12.08 |
| Python 소수점 자리수 제어와 숫자 포매팅 :.nf (1) | 2024.12.03 |