개발을 하다보면 시간, 날짜와 관련된 일을 할 때가 종종 있다.
개발 중 파이썬 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라는 결과값을 얻을 수 있었다.
'Developer > 모아두기' 카테고리의 다른 글
[Node.js] Ubuntu Node.js 설치 (0) | 2016.03.24 |
---|---|
[AWS] 우분투 인스턴스 생성시 ssh 접속 에러 (mac) (0) | 2016.03.24 |
[python] 서버에서 In app purchase 영수증 확인 방법 (Google Play) (0) | 2016.03.23 |
(공유) python 내부 logging 모듈 사용하기 (0) | 2016.03.22 |
(공유) Flask에서 메일로 error 로그 보내기. (0) | 2016.03.22 |