Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich würde gerne das aktuelle Datum ermitteln,
kann dabei aber nicht auf das Datum des Betriebssystems zurückgreifen,
da das ja einfach zu manipulieren ist.
Wie kann ich das auf einfache Weise umsetzen.
Ich hatte mir mal Zeitserver angesehen, aber das scheint ja eine Wissenschaft für sich zu sein.
Eventuell habe ich da aber auch nur nicht den richtigen Packan gefunden.
Modified from http://support.ntp.org/bin/view/Support/JavaSntpClient Modified to allow user to enter the name of the ntp server (i used north-america.pool.ntp.org), send three requests and print...
Ja, das hat auch seinen Sinn. Wenn Du aber nur das Datum wissen willst, geht das doch viel einfacher.
Zum Beispiel kannst Du als "Zeitserver" etwas wie worldtimeapi.org verwenden. Dort bekommst Du per http://worldtimeapi.org/api/ip die aktuelle Zeit als JSON, wenn Du .txt dranhängst, dann als plain text. Fürs Datum sollte das doch locker reichen.
(Nur für den Fall, dass es für eine Art Lizenzsystem benutzt werden soll ... Der Zweck wurde ja nicht erwähnt, aber das ist mir irgendwie in den Sinn gekommen ...)
Und dann ist die Frage, ob es noch angebracht ist, dass der TE da JSON als Text auswertet - die Verwendung von entsprechenden Libraries um JSON auszuwerten sollte er doch auch inzwischen nutzen können ...
Ansonsten sehe ich die Komplexität nicht wirklich. Es geht ja nicht darum, alles selbst zu schreiben (Wobei das auch nicht sonderlich komplex ist -- dazu ja extra der zweite Link! Da ist alles nicht auf Anhieb gut ersichtlich, aber man hat eine Basis zum rumspielen und dann hat man doch schnell die notwendigen Daten.)
Aber das extra als erstes erwähnte Apache Commons bietet da z.B.:
Java:
final TimeTCPClient client = new TimeTCPClient();
client.setDefaultTimeout(60000);
client.connect(host);
Date ntpDate = client.getDate();
client.disconnect();
Wer es per UDP haben will: Da gibt es auch einen TimeUDPClient, der fast 1:1 funktioniert. Statt dem connect hat man dann aber nur ein open und das getDate bekommt die INetAddress des Servers mitgegeben. Und aus disconnect wird ein close.
Und wer es als Ganzes haben möchte, dafür haben die in dem Projekt sogar ein Beispiel gebaut:
Schon richtig, ich bevorzuge allerdings Lösungen ohne 3rd-Party-Libs für einfache Aufgaben. Evtl. hat er selbst einen Server rumliegen, dann gibt er dort einfach das Datum aus und gut ist's.
Und dann ist die Frage, ob es noch angebracht ist, dass der TE da JSON als Text auswertet - die Verwendung von entsprechenden Libraries um JSON auszuwerten sollte er doch auch inzwischen nutzen können ...
Ja, die Meinung teile ich. Ich würde daher auch eher den Request, ähnlich wie in dem zweiten Link von mir aufgeführt, durchführen.
Es geht ja nicht darum, die Zeit exakt zu setzen sondern hier würde es sogar ausreichen, große Abweichungen zu erkennen. die ganze Komplexität kann man da ja doch deutlich reduzieren, da z.B. die Laufzeiten ignoriert werden können und so ...
Ja genau das war auch meine Überlegung.
Anfangs war ich mir nicht über die Komplexität eine Zeitabfrage in Java bewusst und dachte das ginge ganz unkompliziert.
Ich will dann in der Zukunft unter Unix auf dem Server eine Syncronisation einrichten.
Damit habe ich von Grund auf alles in Ordnung.
$ timedatectl
Local time: Sat 2021-04-10 16:27:16 CEST
Universal time: Sat 2021-04-10 14:27:16 UTC
RTC time: Sat 2021-04-10 14:27:17
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no