COleDateTime을 linux 에서 호환되는 time_t 값으로 변경하기

|

참고사이트 : http://forums.codeguru.com/showthread.php?511240-Convert-COleDateTime-to-Unix-time&p=2009432#post2009432


unix의 timestamp는 1970년 1월 1일 0시부터 1초씩 증가하는 값이므로, 해당 시간의 COleDateTime을 생성하고 현재 시간에서 뺀 후에 초단위를 추출하면 time_t 값이 된다는 소리임.



대략 이렇게 하라는 소린데, 정작 해보면 몇시간 차이가 남.


참고 사이트 : http://blog.naver.com/PostView.nhn?blogId=widecapa&logNo=70112910772&redirect=Dlog&widgetTypeCall=true


대안은 이것인데, 잘 되긴 함.




문제는 CTime 클래스. 요놈은 2038년 이후에는 오버플로우 때문에 사용할 수 없다. 그래서 굳이 COleDateTime을 꺼내 쓰는건데.

하튼, 이 뭔가 뒤를 덜 닦은듯한 찝찝함이란.


참고 사이트 : http://mfctips.com/2013/01/28/convert-utc-formatted-string-to-unix-time_t-or-ctime/


이것도 있다. 간단하게, COleDateTime을 double로 캐스팅하고, 86400을 곱하고 2209161600을 빼는거다. 이것 역시 1번과 같은 결과가 나온다.


tTime 2014-01-09 17:50, 1389257400(이것이 정상적인 값), 1389289800(이것이 몇시간 뒤)


사실 답은 알고 있다. 9시간, 그러니까 KST와 GMT 차이값 만큼 커진거다. 그러니까 9시간 만큼의 초, 32400 을 마저 빼주면 해결된다. 결론은 이렇게 된다.



이것도 뭔가 구린건 마찬가지다.


그래도 2038년 이후에는 쓸 수 없는걸 만들것인가, 아니면 우리나라 한정 2038년 이후에도 쓸 수 있는걸 만들것인가의 선택지는 생긴 셈이다.


And