아래와 같은 소스로 시간을 설정하는 프로그램을 만들었는데요...
윈도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시간씩 더해지는 것과
무슨 연관이 있는듯 한데요...
아시는분 답변 부탁드립니다...