SW개발/python

[python] datetime 날짜,시간을 다루는 유용한 방법들

코대장 2021. 5. 2. 08:47
반응형

 

datetime 날짜 계산 - 변환방법

제목이 뭔가 애매모호 하긴 하지만 날짜, 시간 등을 (형)변환(convert) 하는 방법을 익혀봅시다.

기본적으로 자주사용하는 것이 문자열(str) 타입을 날짜,시간(datetime) 타입으로 바꾸는 일이며,

현재시간, 날짜를 구해서 시간 계산을 해본다거나 필요에 따라서 정말 여러 케이스들이 발생할 수 있겠죠?

 

  • 현재날짜,시간 구하기
from datetime import datetime, timedelta

# 현재날짜,시간(Datetime) 구하기
now = datetime.now()
print("{} {}".format(type(now), now))

# 현재날짜,시간(Datetime) 구하기
today = datetime.today()
print("{} {}".format(type(today), today))

# 내일날짜,시간(Datetime) 구하기
tommorrow = now + timedelta(days=1)
print("{} {}".format(type(tommorrow), tommorrow))

 

  • DateTime <-> String 간 변환방법

날짜, 시간 계산등을 이유로 String -> DateTime 으로 변환해야 하는 일이 자주 발생하게 됩니다.

쌍방향 변환하는 방법은 익혀두시면 반드시 도움이 될꺼에요.

  • DateTime to String : DATETIME.strftime(format)
  • String to DateTime : DATETIME.strptime(문자열, format)
# 현재날짜,시간(Datetime) -> 문자열로 변환
# datetime.strftime(format)
str_now = now.strftime("%Y-%m-%d %H:%M:%S")  # format:YYYY-mm-dd HH:MM:SS
print("{} {}".format(type(str_now), str_now))

# 문자열 -> 현재날짜,시간(Datetime)으로 변환
str_datetime = '2021-05-01 08:10:30'
datetime_str = datetime.strptime(str_datetime, "%Y-%m-%d %H:%M:%S")
print("{} {}".format(type(datetime_str), datetime_str))

 

  • 현재날짜,시간에서 날짜 또는 시간 정보만 추출하는 방법

불러온 정보 중에서 날짜만 또는 시간만 필요한 경우도 있을 수 있죠.

# 현재날짜,시간(Datetime)에서 날짜만 가져오기
only_date = now.date()
print("{} {}".format(type(only_date), only_date))

# 현재날짜,시간(Datetime)에서 시간만 가져오기
only_time = now.time()
print("{} {}".format(type(only_time), only_time))

 

  • 현재날짜,시간 조합하는 방법

조합을 해야하는 이유는 아마도 날짜,시간 계산을 위해서 일꺼에요. 

단순히 TIME 정보만 가지고는 하루뒤, 이틀뒤를 계산 할 수 없어요.

# 현재날짜,시간(Datetime) 조합하기
comb_datetime = datetime.combine(only_date, only_time)
print("{} {}".format(type(comb_datetime), comb_datetime))

 

 

이상. 끝.