👩‍💻 Develope/Python

[Python] Datetime

heywantodo 2023. 7. 5. 18:51
728x90
반응형

[Python] Datetime

파이썬을 사용하여 데이터 분석을 하면 날짜&시간 데이터를 처리해야 하는 경우가 많다.

파이썬의 Datetime 모듈을 사용하면 날짜 및 시간을 생성, 조작 및 비교가 가능하다.

 

Datetime 모듈의 간단한 사용법은 다음과 같다.

우선 datetime 모듈을 사용하기위해 import 해준다.

from datetime import datetime, timedelta

 

1. 날짜와 시간 생성하기

  • datetime 클래스를 사용하여 현재 날짜와 시간을 가져온다.
now = datetime.now()
print(now)
#2023-07-05 17:32:25.476787
  • 날짜와 시간을 생성한다.
date = datetime.date(2023, 7, 5)
print(date)
#2023-07-05

time = datetime.time(12, 30)
print(time)
#12:30:00
  • timedelta 클래스를 사용하여 시간 간격을 생성한다.
delta = timedelta(days=1)
print(delta)
#1 day, 0:00:00

 

🔎timedelta

시간 간격을 나타내는 클래스

timedelta(days, hours, minutes, seconds, microseconds) 를 사용하여 시간 간격을 생성할 수 있다.

이를 통해 날짜와 시간에 대한 산술 연산을 수행할 수 있다. 

 

2. 타입 변경하기

🔎strftime()

날짜 및 시간 객체를 원하는 형식의 문자열로 변환 하는 함수

아래와 같은 서식을 사용하여 형식을 지정할 수 있다. 

서식 설명 예시
%Y 4자리 연도를 나타내는 숫자 2023
%y 2자리 연도를 나타내는 숫자 23
%m 2자리 월을 나타내는 숫자 (01부터 12) 07
%B 월의 전체 이름 July
%b 또는 %h 월의 축약된 이름 Jul
%d 2자리 일을 나타내는 숫자 (01부터 31) 04
%A 요일의 전체 이름 Sunday
%a 요일의 축약된 이름 Sun
%H 24시간 형식의 시간 (00부터 23) 12
%I 12시간 형식의 시간 (01부터 12) 12
%p 오전/오후 표시 (AM 또는 PM) PM
%M 2자리 분을 나타내는 숫자 (00부터 59) 30
%S 2자리 초를 나타내는 숫자 (00부터 59) 00

예를 들어 %Y-%m-%d 형식은 "연도-월-일"로 변환하고, %H:%M:%S 형식은 "시간:분:초"로 변환한다.

아래는 strftime() 함수를 사용하여 원하는 형식의 타입으로 변환하는 예시다. 

  • strftime() 함수를 사용하여 날짜 및 시간 객체를 문자열로 변환한다.
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted)
print(type(formatted))
#2023-07-05 17:38:40
#<class 'str'>
  • strftime() 함수를 사용하여 문자열을 날짜 및 시간 객체로 변환한다.
parsed = datetime.strptime("2023-07-05", "%Y-%m-%d")
print(parsed)
print(type(parsed))
#2023-07-05 00:00:00
#<class 'datetime.datetime'>

 

3. 날짜와 시간 연산하기 

  • 날짜 간의 차이를 계산한다.
date1 = datetime(2023, 7, 5)
date2 = datetime(2023, 6, 30)
delta = date1 - date2
print(delta.days)
#5
  • 특정 시간 간격 생성하기
now = datetime.now()
time1 = timedelta(hours=3, minutes=45)
time2 = timedelta(hours=1, minutes=30)
  • 시간 간격 더하기
'''현재 시간에서 5시간 15분 후의 날짜와 시간'''
result = now + time1 + time2
print(result)
#2023-07-05 23:03:52.310217
  • 시간 간격 빼기
'''현재 시간에서 5시간 15분 이전의 날짜와 시간'''
result = now - time1 - time2
print(result)
#2023-07-05 12:34:53.144770
  • 날짜와 시간 비교하기
date1 = datetime(2023, 7, 5, 12, 30)
date2 = datetime(2023, 7, 5, 9, 45)
print(date1 > date2)  # True
print(date1 < date2)  # False
print(date1 == date2)  # False

위와 같이 다양한 방식으로 datetime 모듈을 활용할 수 있다 👍

 

728x90
반응형