개발을 하다보면 시간, 날짜와 관련된 일을 할 때가 종종 있다. 

개발 중 파이썬 Datetime 모듈을 이용해서 사용한 몇가지를 정리해야겠다.



1) 현재시간 보다 (얼만큼) 전, 후 



한국 시간의 경우 utc보다 9시간 뒤이다. 즉 utc가 오전 9시라면, 한국시간은 저녁 6시인 것이다. 

utc 시간을 이용해 9시간 뒤의 한국시간을 구하기 위해서는 utc시간에 +9시간을 하면 되는 것이다. 

그럴 때 쓰는 것이 datetime.timedelta 이다.




이런식으로 계산할 수 있다. 물론 timedelta() 괄호 안에 parameter로는 minutes, days, 등이 들어갈 수 있겠다. 





2) String으로 표현된 datetime을 datetime 객체로 변환 시키기



클라이언트로 부터 클라이언트의 시간을 받았지만 그 시간의 형태는 string이다. 이것을 datetime 객체로 바꿀 필요가 있다


그리고 나서 type을 확인해보면 datetime.datetime 임을 알 수 있다. 






3) datetime 간의 시간 차이


내가 직면한 문제는 서버의 시간은 utc를 쓰지만 클라이언트는 클라이언트 개인 시간을 쓰기 때문에, 

서버 시간과 클라이언트 시간의 차이를 구해서 그 시간만큼을 timegap으로 사용해야 하는 것이었다. 


간단하게 차이 연산으로 해결할 수가 있다. 



여기서 



라고 확인을 해보면 

32406.608232 이라는 값이 나온다. 


반대로 utc_time - kor_time을 해서 똑같이 확인을 해보면

-32406.608232 이라는 값이 나온다.


한국 시간이 utc 시간보다 더 빠르기 때문에 한국 시간에서 utc 시간을 빼면 양수가 나오고, 반대의 경우 음수가 나오는 것이다.

이것은 초 단위 시간 차이이기 때문에 분 차이로 알고 싶으면 /60, 시간 차이로 알고 싶으면 /3600을 하면 된다. 


나는 시간을 알고 싶기 때문에 /3600을 해보겠다. 


결과는 9.00183562 즉 9시간이다 라는 것을 알 수 있다. 

필자는 단순히 몇 시간 차이가 나는지를 구할 필요가 있었기 때문에, 반올림을 하여서

9라는 결과값을 얻을 수 있었다. 






+ Recent posts