Q&A

  • Win2000 에서 SetSystemTime???
아래와 같은 소스로 시간을 설정하는 프로그램을 만들었는데요...

윈도2000에서만 그런건지...

label의 text로 값을 받아내면 똑바로 나오는데..

시간으로 설정하면 꼭 9시간씩 더해져서 시간이 설정됩니다.

그래서 그냥 값으로 11이라는 숫자를 줘도 11시가 되는 것이 아니라

오후 8시로 되어버리는데 무슨 문제인지 모르겠네요.

소스를 한번 봐주시길바랍니다.

begin

ST.wYear := StrToInt(FormatDateTime('yyyy', DateToday.date)); //년도 설정

ST.wMonth := StrToInt(FormatDateTime('mm', DateToday.date)); //월 설정

ST.wDay := StrToInt(FormatDateTime('dd', DateToday.date));// 일 설정

ST.wHour := 11;//StrToInt(FormatDateTime('hh', Now)); //시 설정

ST.wMinute := StrToInt(FormatDateTime('nn', Now)); //분 설정

ST.wSecond := StrToInt(FormatDateTime('ss', Now)); //초 설정

ST.wMilliseconds := 0;

SetSystemTime(ST); // 시스템 날짜 바꿈

end;

end;



위와 같이 했는데... ST.wHour부분에서 11 이라는 값을 줘도

시간은 오전 11시로 맞춰지는 것이아니라 오후 8시로 9시간 더해진

결과가 나오는 군요..

다른 값을 줘도 9시간 더해져서 나오는데 무슨 문제 인지 모르겠습니다.

11;// 뒤의 부분을 주면 현재 시간을 그대로 설정하지 않고

역시 9시간을 더한 시간이 설정되어 버립니다.

StrToInt(FormatDateTime('hh', Now)); 부분을 label에 Text값에 넣으면

올바른 현재 시간이 label1.text에 들어가지거든요...

혹시 아시는분 답변 부탁드립니다.



가만히 생각해보니..+9:00의 정체가 아무래도

우리나라가 속한 시간대때문이 아닐까 생각이 드는데요..

윈도우 트래이에 시계더블 클릭해보면 표준 시간대에

'GMT +09:00 서울' 이라고 되어 있느데..

아무래도 이 +9랑 SetSystemTime에서 9시간씩 더해지는 것과

무슨 연관이 있는듯 한데요...

아시는분 답변 부탁드립니다...





0  COMMENTS