CodeGym /행동 /Python SELF KO /datetime 라이브러리

datetime 라이브러리

Python SELF KO
레벨 14 , 레슨 5
사용 가능

9.1 날짜와 시간 다루기

프로그래머들은 종종 프로그램에서 날짜와 시간을 다루어야 해. 그래서 Python에는 이런 경우를 위한 두 개의 표준 라이브러리 datetimetime이 있어.

datetime 라이브러리는 Python의 표준 라이브러리의 일부이며 날짜와 시간 작업을 위한 클래스를 제공해. 날짜와 시간을 생성하고, 조작하고, 포맷할 수 있으며, 그들과 함께 산술 연산을 수행할 수도 있어.

datetime 라이브러리의 주요 클래스들

datetime.date 클래스

이 클래스는 시간 없이 날짜(연도, 월, 일)를 나타내. 달력 날짜를 다루는 데 유용해.

사용 예시:


import datetime

# 날짜 객체 생성
d = datetime.date(2023, 5, 24)
print(d)  # 출력: 2023-05-24
            
# 현재 날짜 얻기
today = datetime.date.today()
print(today)
            
# 연도, 월, 일 속성 접근
print(d.year)  # 출력: 2023
print(d.month)  # 출력: 5
print(d.day)  # 출력: 24

datetime.time 클래스

이 클래스는 날짜 없이 시간(시, 분, 초, 마이크로초)을 나타내. 하루 중 시간을 다루는 데 유용해.

사용 예시:


import datetime

# 시간 객체 생성
t = datetime.time(14, 30, 45)
print(t)  # 출력: 14:30:45
            
# 시, 분, 초 속성 접근
print(t.hour)  # 출력: 14
print(t.minute)  # 출력: 30
print(t.second)  # 출력: 45

datetime.datetime 클래스

이 클래스는 날짜와 시간(연도, 월, 일, 시, 분, 초, 마이크로초)을 결합해. 특정 시점을 다루는 데 유용해.

사용 예시:


import datetime

# 날짜와 시간 객체 생성
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # 출력: 2023-05-24 14:30:45
        
# 현재 날짜와 시간 얻기
now = datetime.datetime.now()
print(now)
        
# 날짜와 시간 속성 접근
print(dt.year)  # 출력: 2023
print(dt.month)  # 출력: 5
print(dt.day)  # 출력: 24
print(dt.hour)  # 출력: 14
print(dt.minute)  # 출력: 30
print(dt.second)  # 출력: 45

datetime.timedelta 클래스

이 클래스는 두 시점 간의 차이를 나타내며, 일, 초, 마이크로초로 표현돼. 날짜와 시간에 대한 산술 연산 수행에 유용해.

사용 예시:


import datetime

# timedelta 객체 생성
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # 출력: 10 days, 5:30:00
        
# 날짜에 timedelta 더하기
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # 출력: 2023-06-03 20:00:00
        
# 날짜에서 timedelta 빼기
earlier_dt = dt - delta
print(earlier_dt)  # 출력: 2023-05-14 09:00:00

4.2 날짜와 시간의 포맷팅 및 파싱

종종 우리는 단순히 날짜를 다루는 것뿐만 아니라 특정 형식의 문자열로 변환해야 해. 문자열을 객체로 변환하는 반대 과정은 일반적으로 파싱이라고 불려. 이러한 작업을 위해 Python에는 클래스와 메서드가 있어:

strftime() 메서드

strftime() 메서드는 주어진 형식에 따라 datetime 객체를 문자열로 포맷하는 데 사용돼.

사용 예시:


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# 날짜와 시간 포맷팅
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # 출력: 2023-05-24 14:30:45
    
# 날짜만 포맷팅
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # 출력: 24-05-2023
    
# 시간만 포맷팅
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # 출력: 14:30:45

strptime() 메서드

strptime() 메서드는 주어진 형식에 따라 문자열을 datetime 객체로 파싱하는 데 사용돼.

사용 예시:


import datetime

# 문자열을 datetime 객체로 파싱
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # 출력: 2023-05-24 14:30:45
    
# 문자열을 date 객체로 파싱
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # 출력: 2023-05-24
    
# 문자열을 time 객체로 파싱
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # 출력: 14:30:45

4.3 시간대 다루기

실제로 우리의 서비스는 전 세계 사람들이 사용하곤 하고, 안타깝게도 그들은 서로 다른 나라에 살고 있으며, 서로 다른 시간대(timezone)를 가지고 있어. 프로그래머로서 너는 이들을 다룰 줄 알아야 해.

Python에는 이 경우에 대한 클래스도 있어:

timezone 클래스

datetime 모듈의 timezone 클래스는 시간대를 다루기 위한 거야.


import datetime

# UTC 시간대가 있는 datetime 객체 생성
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # 출력: 2023-05-24 14:30:45+00:00
        
# 다른 시간대로 변환
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # 출력: 2023-05-24 23:30:45+09:00

우리는 datetime 라이브러리를 정말 넓게, 심지어는 표면적으로 다뤘어. 나중에 다시 돌아와서 더 구체적인 작업을 위해 사용하는 방법을 배울 거야. 지금은 단지 너에게 이 라이브러리를 소개하고 표준 라이브러리 세트를 확장시키고 싶었어.

어떤 라이브러리든지 간에, 가장 중요한 것은 그것이 존재한다는 것을 알고, 그것을 사용해서 무엇을 할 수 있는지 아는 것이야. 함수 목록, 매개변수 및 모든 가능성은 항상 공식 문서에서 찾을 수 있어.

1
설문조사/퀴즈
데코레이터, 레벨 14, 레슨 5
사용 불가능
데코레이터
데코레이터
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION