파이썬 기초문법

파이썬으로 날짜와 시간 다루기: datetime 모듈 활용 방법

Family in August 2023. 3. 30. 21:11
반응형

날짜와 시간은 많은 애플리케이션에서 중요한 역할을 합니다.

파이썬에서는 datetime 모듈을 통해 날짜와 시간을 쉽게 다룰 수 있습니다.

이번 포스팅에서는 datetime 모듈을 활용하여 파이썬에서 날짜와 시간을 다루는 방법을 알아보겠습니다.

 

datetime 모듈은 파이썬에서 날짜와 시간을 다루기 위해 제공되는 모듈입니다.

이 모듈을 사용하면 날짜와 시간을 쉽게 다룰 수 있습니다.

datetime 모듈은 date, time, datetime, timedelta 등의 클래스를 제공합니다.

 

현재 시간 구하기

현재 시간을 구하기 위해서는 datetime 모듈의 datetime 클래스를 사용합니다.

다음 코드를 실행하면 현재 시간을 출력할 수 있습니다.

import datetime

now = datetime.datetime.now()

print("현재 시간:", now)

특정 날짜와 시간 생성하기

datetime 모듈을 사용하여 특정 날짜와 시간을 생성할 수 있습니다.

다음은 2023년 3월 20일 12시 30분 0초를 나타내는 datetime 객체를 생성하는 코드입니다.

import datetime

my_datetime = datetime.datetime(2023, 3, 20, 12, 30, 0)

print("생성된 datetime 객체:", my_datetime)

 

날짜와 시간 연산하기

date 클래스를 사용하여 날짜를 연산하는 방법을 알아보겠습니다.

from datetime import date, timedelta

# 오늘 날짜
today = date.today()
print("오늘 날짜:", today)

# 어제 날짜
yesterday = today - timedelta(days=1)
print("어제 날짜:", yesterday)

# 일주일 전 날짜
last_week = today - timedelta(weeks=1)
print("일주일 전 날짜:", last_week)

위 코드에서는 date.today()를 통해 오늘 날짜를 가져오고, timedelta를 통해 날짜 연산을 수행합니다.

timedelta는 날짜와 시간 간격을 표현할 때 사용하는 클래스입니다.

timedelta(days=1)은 1일 간격을 의미하며, timedelta(weeks=1)은 1주일 간격을 의미합니다.

 

다음으로, time 클래스를 사용하여 시간을 연산하는 방법을 알아보겠습니다.

from datetime import time, timedelta

# 현재 시간
now = time(10, 30, 0)
print("현재 시간:", now)

# 1시간 30분 뒤 시간
later = (now + timedelta(hours=1, minutes=30)).strftime("%H:%M:%S")
print("1시간 30분 뒤 시간:", later)

위 코드에서는 time 클래스를 통해 현재 시간을 가져오고, timedelta를 통해 시간 연산을 수행합니다.

timedelta(hours=1, minutes=30)은 1시간 30분 간격을 의미합니다.

마지막으로 strftime 메소드를 사용하여 시간을 문자열로 출력합니다.

 

from datetime import datetime, timedelta

# 현재 날짜와 시간
now = datetime.now()
print("현재 날짜와 시간:", now)

# 2일 3시간 30분 후 시간
later = now + timedelta(days=2, hours=3, minutes=30)
print("2일 3시간 30분 후 시간:", later)

# 1주일 전 날짜와 시간
last_week = now - timedelta(weeks=1)
print("1주일 전 날짜와 시간:", last_week)

시간 차이 계산하기

때로는 두 날짜 혹은 시간의 차이를 계산해야 할 때가 있습니다.

예를 들어, 두 이벤트 사이의 시간 차이, 혹은 현재 시간과 미래 시간의 차이 등이 있습니다.

파이썬에서는 datetime 모듈을 사용하여 이를 계산할 수 있습니다.

 

시간 차이를 계산하기 위해서는 먼저 datetime 객체를 만든 다음, 이 객체들의 차이를 계산합니다.

예를 들어, 2010년 1월 1일 12시와 2010년 1월 1일 14시 사이의 시간 차이를 계산해보겠습니다.

import datetime

dt1 = datetime.datetime(2010, 1, 1, 12)
dt2 = datetime.datetime(2010, 1, 1, 14)
tdelta = dt2 - dt1

print(tdelta)  # 2:00:00
print(tdelta.seconds)  # 7200

tdeltadatetime.timedelta 객체이며, seconds 속성을 사용하여 초 단위로 시간 차이를 계산할 수 있습니다.

 

시간대(timezone) 다루기

시간대는 지구상의 각 지역에서 사용하는 시간대를 말합니다.

파이썬에서는 pytz 모듈을 사용하여 시간대를 다룰 수 있습니다.

먼저 pytz 모듈을 설치해야 합니다.

pip install pytz

pytz 모듈은 세계 각 지역에 대한 시간대 정보를 제공하며, 이 정보를 이용하여 시간대 변환을 할 수 있습니다.

다음은 시간대 변환의 예입니다.

import datetime
import pytz

utc = pytz.utc
eastern = pytz.timezone('US/Eastern')

# 현재 시간 구하기
utc_now = datetime.datetime.now(tz=utc)
eastern_now = utc_now.astimezone(eastern)

print(utc_now)  # 2023-03-20 14:23:01.715152+00:00
print(eastern_now)  # 2023-03-20 10:23:01.715152-04:00

먼저 pytz.utc를 사용하여 UTC 시간대를 가져옵니다.

그리고 pytz.timezone() 함수를 사용하여 미국 동부 시간대를 가져옵니다.

datetime.datetime.now() 함수를 사용하여 현재 시간을 구한 다음, astimezone() 메서드를 사용하여 UTC 시간대에서 미국 동부 시간대로 변환합니다.

 

이번 포스팅에서는 파이썬에서 날짜와 시간을 다루는 방법을 알아보았습니다.

궁금하신 부분이 있으시면 언제든지 댓글 남겨주세요.

반응형