[python] 날짜계산 (datetime)
kibana 에서 대시보드를 만들려고 하는데 시계열 데이터를 만들고 싶어서 DB에서 날짜를 임의로 업데이트를 해야겠다.
python 에서 몇분전, 몇시간전 이런 식으로 날짜를 계산하고싶은데 datetime 을 활용해보잣.
from datetime import datetime
now = datetime.now()
print("현재 :" , now)
출력 : 현재 : 2024-02-03 18:57:38.572549
timedelta를 사용해서 날짜 계산을 할껀데 import를 수정하고
from datetime import datetime, timedelta
마이크로 세컨드를 계산해보면
before_one_microsecond = now - timedelta(microseconds=1)
print("1 microsecond 전 :", before_one_microsecond)
after_one_microsecond = now + timedelta(microseconds=1)
print("1 microsecond 후 :", after_one_microsecond)
출력
1 microsecond 전 : 2024-02-03 19:07:31.055255
1 microsecond 후 : 2024-02-03 19:07:31.055257
위와 같다.
timedelta 옵션은 microseconds, milliseconds, seconds, minutes, hours, days, weeks Parameter에 값을 원하는 수로 입력하고
timedelta(weeks=1, days=3, hours=2)
이런식으로도 사용할 수 있음.
relativedelta 를 사용하여 계산하는 방법은
from datetime import datetime
from dateutil.relativedelta import relativedelta
import 수정하고 문법은 timedelta 와 거의 동일하며
before_one_microsecond = now - relativedelta(microseconds=1)
print("1 microsecond 전 :", before_one_microsecond)
after_one_microsecond = now + relativedelta(microseconds=1)
print("1 microsecond 후 :", after_one_microsecond)
차이점은
timedelta 에는 Parameter에 months와 years가 존재하지 않음
relativedelta 에는 milliseconds가 존재하지 않음
즉, 마이크로초 전, 마이크로초 후 를 구하고 싶다면 timedelta를 사용해야 하고,
몇달 전, 몇달 후, 몇년 전, 몇년 후 를 구하고 싶다면 relativedelta를 사용해야함.
내 DB 테이블의 데이터 포멧은
이렇게 되어있으니 포멧을 수정해보자.. 하지마까?