unix의 timestamp는 1970년 1월 1일 0시부터 1초씩 증가하는 값이므로, 해당 시간의 COleDateTime을 생성하고 현재 시간에서 뺀 후에 초단위를 추출하면 time_t 값이 된다는 소리임.
대략 이렇게 하라는 소린데, 정작 해보면 몇시간 차이가 남.
대안은 이것인데, 잘 되긴 함.
문제는 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년 이후에도 쓸 수 있는걸 만들것인가의 선택지는 생긴 셈이다.
'프로그래밍 > Windows' 카테고리의 다른 글
mssql에서 paging query 하기 (0) | 2014.12.11 |
---|---|
MINGW32, Git Bash 와 msys (부제: Git Bash에서 gcc 쓰기) (0) | 2014.12.03 |