akaSonny

파이썬 python datetime 모듈 이용하기 본문

Study (Programming)/Python

파이썬 python datetime 모듈 이용하기

Jihyeoning 2021. 12. 28. 16:17

데이터 처리할 때 datetime 모듈을 상당히 많이 쓰는데, 맨날 쓰고 까먹고 검색하고 무한 반복이라 내가 자주 쓰는 것들 정리용 포스팅

 

1. datetime to string : strftime 메소드 이용 (f: format)

import datetime
date = datetime.datetime(2021, 12, 28)
date_string = date.strftime("%Y-%m-%d")
date_string

# 출력 : '2021-12-28'

 

2. string to datetime : strptime 메소드 이용 (p: parse)

import datetime

date = datetime.datetime.strptime('2021-12-28', '%Y-%m-%d')
date

# 출력 : datetime.datetime(2021, 12, 28, 0, 0)

 

3. 오늘 날짜로부터 특정 기간(시간) 후의 날짜(시간)를 알고 싶을 때 : timedelta 이용

import datetime

# 날짜
datetime.datetime(2021, 12, 28) + datetime.timedelta(days=100)
# 출력 : datetime.datetime(2022, 4, 7, 0, 0)

# 시간
datetime.datetime(2021, 12, 28, 0) + datetime.timedelta(hours=100)
# 출력 : datetime.datetime(2022, 1, 1, 4, 0)

후가 아니라 전을 알고 싶다면 그냥 + 가 아니라 - 해주면 된다.

* 참고로 두 날짜 간의 차이를 알고 싶다면 두 datetime 타입을 빼주면 된다. 이 때 출력은 timedelta 형식으로 나옴!

import datetime

datetime.datetime(2021, 12, 28) - datetime.datetime(2021, 12, 25)
# 출력 : datetime.timedelta(days=3)

 

4. day of year (doy) 가 주어졌을 때 날짜 구하기 (doy to datetime) : timedelta를 사용하면 된다.

가끔 데이터를 볼 때 날짜가 아니라 doy로 주어지는 경우가 있는데, 좀 빡췸

import datetime

doy = 100
year = 2021
date = datetime.datetime(year, 1, 1) + datetime.timedelta(doy-1)

date

# 출력 : datetime.datetime(2021, 4, 10, 0, 0)

그냥 그 해의 1월 1일에서 doy-1 을 더해주면 된다. 짱 쉽! 지만 생각하기 어려웠다 .. 

 


일단 지금 당장 쓰고 있고 자주 사용한 것들은 여기까지인데 더 생각나거나 새로운걸 쓰게 됐을 때 무한 수정 예정