Q&A

  • PC의 system의 날짜시간정보를 강제로 setting하는 방법
PC의 system의 날짜시간정보를 강제로 setting하는 함수가 있을거 같은데요..

뭔지 찾지를 못하겠네요..

부탁드립니다.. 꾸벅~
3  COMMENTS
  • Profile
    유동기 2004.04.13 02:11
    아래와 같이 하시면 됩니다.

    procedure TForm1.Button1Click(Sender: TObject);
    var
    SysTime :TSYSTEMTIME; // 날짜와 시간을 담는 구조체
    begin
    GetSystemTime(SysTime); // 시스템의 날짜를 얻어온다.

    SysTime.wYear  := Word(1999); // 원하는 년
    SysTime.wMonth := Word(9);    //        월
    SysTime.wDay   := Word(9);    //        일

    SetSystemTime(SysTime); // 시스템의 날짜를 위의 날짜로 설정
    end;




  • Profile
    전진배 2004.04.13 02:55
    procedure TForm1.Button1Click(Sender: TObject);
    var
      LT : TSystemTime;
      CT : TSystemTime;
      ST : TSystemTime;
    begin
      memo1.lines.clear;
      datetimetosystemtime(now,LT);
      memo1.lines.add('now = ' + inttostr(LT.wYear)         + '-'
                               + inttostr(LT.wMonth)        + '-'
                               + inttostr(LT.wDay)          + ' '
                               + inttostr(LT.wHour)         + ':'
                               + inttostr(LT.wMinute)       + ':'
                               + inttostr(LT.wSecond)       + '.'
                               + inttostr(LT.wMilliseconds));


      getSystemTime(CT);
      memo1.lines.add('now = ' + inttostr(CT.wYear)         + '-'
                               + inttostr(CT.wMonth)        + '-'
                               + inttostr(CT.wDay)          + ' '
                               + inttostr(CT.wHour)         + ':'
                               + inttostr(CT.wMinute)       + ':'
                               + inttostr(CT.wSecond)       + '.'
                               + inttostr(CT.wMilliseconds));
    end;


    위와 같이 테스트를 하니까 wHour가 서로 틀리게 나오더군요..
    왜그런가요?
  • Profile
    바람 2004.04.13 20:43

    GetSystemTime(CT);  대신
    GetLocalTime(CT);  을 사용해 보세요

    System Time은  Local Time(cmos time)을 그리니치표준시로 변환한

    시각입니다.  유럽이니까 한 8시간 차이나나??

    요샌 써머타임이겠네요  ^^*


    따라서 API를 사용한 coding을 하다보면 실제 G(S)etSystemTime은

    거의 사용할 일이 없고 G(S)etLocalTime 을 사용하게 됩니다.

    뭐 영국과 시차를 고려해야할 프로그램이라면 모르겠네요 ^^*