DateTimeToString()DateTime타입의 ToString() 호출시, 제어판의 및 언어 옵션의 설정에 따라 포매팅이 달라지기 때문에, 아래와 같은 문자열로 무조건 고정시켜놓고 사용했었다.
public const string sDateFormat = "yyyy-MM-dd HH:mm:ss";
하지만 이 방법도 잘못되었다는 것을 알게 되었다.
제어판의 및 언어 옵션에서 구분 기호와 구분 기호를 바꿀 수 있다는 생각을 하지도 못했고, 바꾼다 하더라도 포매팅 문자열도 바뀐다는 생각은 하지 못했다. 그래서 구분 기호를 @와 같은 것으로 변경해 놓았다면 2008@12@04 19@19@19와 같은 형태로 나오게 된다. 덕분에 특정 PC에서만 오류가 발생! 덜덜..
결국 해결책은 구분기호들에게도 Escape를 해 주는 것.
public const string sDateFormat = @"yyyy\-MM\-dd HH\:mm\:ss";
포매터가 -와 :를 특별 취급하여 시스템 설정으로 바꿔 준다니, 도큐먼트를 제대로 안 읽은 내가 바보지.. 정말.. 이런 버그가 발생할 줄은 몰랐다. 세상에 완벽한 프로그램은 없고, 완벽해보이는 프로그램에는 그만큼 완벽하게 숨어있는 버그가 숨어있다는 말을 다시한번 생각나게 한 사건이었다.
-- 2008-12-04 19:37
Similar pages by cosine similarity. Words after page name are term frequency.