본문 바로가기
Category/Python

Python 시간 출력 함수 총 정리

by Corinee 2024. 12. 29.
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에서 시간을 출력하거나 조작할 때 필요에 따라 적절한 모듈과 방법을 선택하면 됩니다.