Entwickler-Ecke

Internet / Netzwerk - idTime verschiebt Zeit um 1 Stunde


Regan - Fr 29.02.08 21:37
Titel: idTime verschiebt Zeit um 1 Stunde
Moin,
als ich heute mal mein Programm zum Aktuallisieren der Systemzeit aufgerufen habe, traf mich der Schlag ganz schön hart. Die Systemzeit wird um eine Stunde falsch eingestellt, obwohl die Zeit im Label richtig angezeigt wird. Ich geb mal meinen Quelltext mit durch:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  mySysTime:_SYSTEMTIME;
  tmpDateTime:TDateTime;
begin
{...}
  try
    IdTime1.Host := 'ptbtime1.ptb.de';
    tmpDateTime:=IdTime1.DateTime;
    Label1.Caption := TimeToStr(tmpDateTime);
    DateTimeToSystemTime(tmpDateTime, mySysTime);
    SetSystemTime(mySysTime);
  finally
    IdTime1.Disconnect;
  end;
{...}
end;

Wo liegt denn da der Fehler?

MfG
Regan


matze - Sa 01.03.08 14:39

vermutlich liegt das daran, dass die Zeit GMT ist und wir in Deutschland ja um eine Stunde von der GMT Zeit abweichen.

EDIT: Ich würde dir sowieso die TidSNTP Komponente für sowas ans Herz legen. Sagen die Leute von Indy ja auch, dass man die eigentlich nehmen sollte.
Zur Synchronisation mit der System Uhr machst du dir eh zu viel Aufwand!
Da reicht ein IdTime1.SyncTime;


Regan - So 02.03.08 10:51

Vielen Dank für deine Antwort.
user profile iconmatze hat folgendes geschrieben:
vermutlich liegt das daran, dass die Zeit GMT ist und wir in Deutschland ja um eine Stunde von der GMT Zeit abweichen.

Mir ist grad was aufgefallen: Ich hatte die Zeitzone auf London umgestellt. :oops: :autsch: . Da ist es wohl kaum verwunderlich, dass es nicht geht :wink: .
user profile iconmatze hat folgendes geschrieben:
EDIT: Ich würde dir sowieso die TidSNTP Komponente für sowas ans Herz legen. Sagen die Leute von Indy ja auch, dass man die eigentlich nehmen sollte.

Ich werde mir deine Variante aber mal anschauen.
user profile iconmatze hat folgendes geschrieben:
Zur Synchronisation mit der System Uhr machst du dir eh zu viel Aufwand!
Da reicht ein IdTime1.SyncTime;

Hab ich gemacht und funktioniert sehr gut.