Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdSNTP liefert immer (noch) Sommerzeit (https://www.delphipraxis.net/213964-tidsntp-liefert-immer-noch-sommerzeit.html)

omnibrain 30. Okt 2023 08:18

TIdSNTP liefert immer (noch) Sommerzeit
 
Ich nutze Delphi 11.2 (Patch 1) unter Windows 11 (22H2):

In unsere Software habe ich vor wenigen Wochen einen Check eingebaut um gegen einen Zeitserver unabhängig vom Rest des Systems gegen einen Zeitserver checken zu können, da unsere Kunden in der Vergangenheit Probleme mit der netzwerkinternen Zeitsynchronisation hatten.
Seit Sonntag haben wir "plötzlich" ein Stunde Abweichung.

Ich habe es auf den einfachst möglichen Test "eingedampft", einfach eine Form mit TIdSNTP-Komponente und einem Edit um den Server einzugeben. Und selbst so bekomme ich immer noch eine Zeit, die genau eine Stunde in der Zukunft liegt.
Habe ich etwas übersehen? Da wir jetzt "Normalzeit" haben hätte ich eher erwartet, dass es in den Vergangenen Wochen (während Entwicklung und Test) Probleme gegeben hätte.

Code:
  IdSNTP1.Host:=LabeledEdit1.Text;
  memo1.Lines.Add('Server: '+LabeledEdit1.Text+'Internetzeit: '+DateTimeToStr(IdSNTP1.DateTime));

Delphi.Narium 30. Okt 2023 09:18

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
Liefert der Zeitserver Greenwich Mean Time also GMT bzw. UTC?

Wir liegen eine Stunde davor, also GMT - 1. Im Sommer GMT - 2.

Sollte deine Software mal in Sydney zum Einsatz kommen, musst du momentan eine Differenz von 11 Stunden berücksichtigen (Sommerzeit), bei Normalzeit ist die Differenz 10 Stunden.

Die Angabe des Zeitservers dürfte also stimmen. Die Differenz zur örtlichen Zeitzone musst Du selbst berücksichtigen.

omnibrain 30. Okt 2023 09:41

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
Wie ich schon schrieb: Dann hätte ich letzte Woche 2 Stunden Abweichung haben müssen, stattdessen hat es bis dahin funktioniert.

Zur Verdeutlichung:
Code:
  IdSNTP1.Host:=LabeledEdit1.Text;
  memo1.Lines.Add('Server: '+LabeledEdit1.Text+' Internetzeit: '+DateTimeToStr(IdSNTP1.DateTime)+' Systemzeit: '+datetimetostr(now));
Output:
Zitat:

Server: ptbtime1.ptb.de Internetzeit: 30.10.2023 11:41:11 Systemzeit: 30.10.2023 10:41:11
...
Server: time.nist.gov Internetzeit: 30.10.2023 11:42:38 Systemzeit: 30.10.2023 10:42:41

Delphi.Narium 30. Okt 2023 09:55

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
Was sagt Dir denn https://uhr.ptb.de/analog?
Wenn Du dort über der 6 auf das Dreieck und das t klickst, wird dir die Abweichung der Rechneruhrzeit von der korrekten Uhrzeit angezeigt.

omnibrain 30. Okt 2023 10:05

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
MEZ (UTC+01:00)
Die lokale Uhr geht 44 ms nach ± 10 ms

Windows sagt
Zeitzone
(UTC+01:00) Amsterdam, Berlin, Bern Rom, Stockholm, Wien

Klapauzius 30. Okt 2023 10:10

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
NTP Server liefern normalerweise UTC Zeit- Für die Umrechnung in die lokAle Zeit ist das Betriebssystem bzw das entsprechende Programm zuständig. Für unsere mitteleuropäische Zeitzone gilt also:
  • Die Sommerzeit entspricht (sofern ich mich nicht irre) UTC+2
  • Die Standardzeit sollte deshalb UTC + 1 sein

omnibrain 30. Okt 2023 10:15

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
Ich benutze die Komponente "TIdSNTP", teil von Indy.

Letzte Woche habe ich die "korrekte" Zeit, also wenn um 11:10 abgefragt habe kam 11:10 als Antwort.
Heute kommt bei der Abfrage um 11:10 stattdessen 12:10 als Antwort.

Die Komponente konvertiert das selbst. Viel zu konfigurieren habe ich da auch nicht gefunden.

Klapauzius 30. Okt 2023 10:39

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
"Die Komponente konvertiert das selbst", steht das in der Hilfe zu Indy? Dann wäre das ein bug von Indy.

Versuch mal folgendes, das sollte die korrekte Zeitangabe liefern:

Delphi-Quellcode:
uses
  DateUtils;

var
 GMT: TDateTime;

...
  GMT := TTimeZone.Local.ToUniversalTime(IdSNTP1.DateTime);
  memo1.Lines.Add('Internetzeit GMT: '+DateTimeToStr(GMT));

omnibrain 30. Okt 2023 10:48

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
Zitat:

Zitat von Klapauzius (Beitrag 1528732)
"Die Komponente konvertiert das selbst", steht das in der Hilfe zu Indy?

Ich ging auf Grund dessen was ich im Code erkennen kann und dem bisherigen Verhalten davon aus.
Wenn du mir einen Link zur Hilfe von Indy hast wäre das nett. https://www.indyproject.org/documentation/ ist seit Jahren tot. Und mit Delphi kam sie entweder nicht mit, oder ich finde sie nicht. F1 jedenfalls liefert nichts.

Uwe Raabe 30. Okt 2023 12:04

AW: TIdSNTP liefert immer (noch) Sommerzeit
 
Zitat:

Zitat von omnibrain (Beitrag 1528733)
Wenn du mir einen Link zur Hilfe von Indy hast wäre das nett. https://www.indyproject.org/documentation/ ist seit Jahren tot. Und mit Delphi kam sie entweder nicht mit, oder ich finde sie nicht. F1 jedenfalls liefert nichts.

Die Hilfe ist, wenn sie denn überhaupt installiert ist, im Menü unter Hilfe - Hilfe von Drittherstellern - Hilfe zur Indy-Bibliothek zu finden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz