• Wir präsentieren Dir heute ein Stellenangebot für einen Java Entwickler - m/w/d in Augsburg, München, Stuttgart oder Bamberg. Hier geht es zur Jobanzeige

Datum ermitteln ?

J

Joob

Bekanntes Mitglied
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.
 
kneitzel

kneitzel

Top Contributor
Apache Commons hat auch bezüglich NTP Klassen.

Und es gibt z.B. auch
 
mihe7

mihe7

Top Contributor
Ich hatte mir mal Zeitserver angesehen, aber das scheint ja eine Wissenschaft für sich zu sein.
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.
 
kneitzel

kneitzel

Top Contributor
Wobei man erwähnen sollte, dass der Server nicht für irgendwelche kommerziellen Dinge genutzt werden darf:

What can I use it for?​

Anything you want! As long as it's non-commercial.
(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:
 
mihe7

mihe7

Top Contributor
Wobei man erwähnen sollte, dass der Server nicht für irgendwelche kommerziellen Dinge genutzt werden darf
Ja, vollkommen richtig. Der war auch nur exemplarisch gedacht. Ggf. findet man auch noch einfachere Dienste.

Aber das extra als erstes erwähnte Apache Commons
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 ...
Nicht JSON als Text auswerten - Plain Text als Text auswerten. Pattern matchen, von ZonedDateTime parsen lassen, fertig.

Aber nochmal: das Teil war nur zur Inspiration gedacht - war halt das Erstbeste, das Google ausgespuckt hat :)

Nachtrag: die Klassen von Buckley wären natürlich auch eine Möglichkeit. Ggf. sogar die bessere.
 
Zuletzt bearbeitet:
kneitzel

kneitzel

Top Contributor
Schon richtig, ich bevorzuge allerdings Lösungen ohne 3rd-Party-Libs für einfache Aufgaben.
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 ...
 
Oneixee5

Oneixee5

Bekanntes Mitglied
Man kann die Zeit auch von time.nist.gov auf Port 13 abfragen. Hier kurz mit Telnet:
Bash:
telnet time.nist.gov 13
Trying 2610:20:6f96:96::4...
Connected to ntp1.glb.nist.gov.
Escape character is '^]'.

59312 21-04-08 14:41:46 50 0 0 358.5 UTC(NIST) *
Connection closed by foreign host.
 
mihe7

mihe7

Top Contributor
Man kann die Zeit auch von time.nist.gov auf Port 13 abfragen. Hier kurz mit Telnet:
Bash:
telnet time.nist.gov 13
Trying 2610:20:6f96:96::4...
Connected to ntp1.glb.nist.gov.
Escape character is '^]'.

59312 21-04-08 14:41:46 50 0 0 358.5 UTC(NIST) *
Connection closed by foreign host.
Ja, das dürfte das Datetime-"Protokoll" sein :) So etwas via HTTP, dann hat man auch keine Firewall-Probleme, wenn der Spaß in Firmen läuft.
 
1

123neu

Bekanntes Mitglied
Hier mal ein Java Script Beispiel:

HTML:
<!DOCTYPE html>
<html lang="de">
  <meta charset="UTF-8" />
  <head>
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <link rel="stylesheet" href="" />
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/timecircles@1.5.3/inc/TimeCircles.min.js"></script>
    <style>
      .time_circles {
        position: relative;
        width: 100%;
        height: 100%;
      }

      .time_circles > div {
        position: absolute;
        text-align: center;
      }

      .time_circles > div > h4 {
        margin: 0px;
        padding: 0px;
        text-align: center;
        text-transform: uppercase;
        font-family: "Century Gothic", Arial;
      }

      .time_circles > div > span {
        display: block;
        width: 100%;
        text-align: center;
        font-family: "Century Gothic", Arial;
        font-size: 300%;
        margin-top: 0.4em;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <div>
      <ul id="myul"></ul>
    </div>
    <div id="myclock" style="width: 500px;"></div>
    <script>
      $.getJSON("http://worldtimeapi.org/api/ip", function (data) {
        $.each(data, function (key, val) {
          $("#myul").append($("<li></li>").text(key + " -> " + val));
        });
        var current_date = new Date(data.datetime);
        current_date.setHours(0, 0, 0, 0);
        $("#myclock").attr("data-date", current_date);
        $("#myclock").TimeCircles();
      });
    </script>
  </body>
</html>
 
J

Joob

Bekanntes Mitglied
Schönen Dank für alle die Anregungen.

Ich habe jetzt aber eine Abfrage per PHP an den Server geschrieben.
Als nächstes werden ich versuchen die Zeitabfrage auf dem Server einzurichten.

Spricht da was gegen.
Ich finde die Komplexität ist da viel geringer.
 
T

thecain

Top Contributor
Mit php bist du doch auf deinem Server. Da stimmt die Zeit doch eigtl sowieso und kann nicht durch dritte verändert werden.
 
J

Joob

Bekanntes Mitglied
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.
 
1

123neu

Bekanntes Mitglied
Dein Server synchronisiert sich bestimmt schon... Hier ist das ganz gut beschrieben: https://www.atlantic.net/vps-hosting/how-to-set-up-time-synchronization-with-ntp-on-ubuntu-18-04/

Bei mir ist die Ausgabe

Code:
$ 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

also alles so, wie es sein soll...
 
J

Joob

Bekanntes Mitglied
Schönen Dank für Deine Mühe, das wird mir sicherlich helfen wenn ich den Server auf die Syncronisation kontrolliere.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
M Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
M String Datum ermitteln Java Basics - Anfänger-Themen 9
S beliebiges Datum einlesen, Wochentag eines Datums ermitteln Java Basics - Anfänger-Themen 18
F aktuelles Datum ermitteln Java Basics - Anfänger-Themen 8
F Datum aus String ermitteln Java Basics - Anfänger-Themen 6
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
D Kontoauszüge von bestimmtem Datum Java Basics - Anfänger-Themen 35
B Termine (Datum erstellen), Abhängig von Intervallen Java Basics - Anfänger-Themen 0
A Nächstes Datum ausgeben, if-Schleife unklar Java Basics - Anfänger-Themen 6
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Datum umformatieren Java Basics - Anfänger-Themen 2
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
D Projekte + Datum + löschen Java Basics - Anfänger-Themen 11
M Datum serialisieren Java Basics - Anfänger-Themen 1
S Datum einlesen Java Basics - Anfänger-Themen 1
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
O Datum-Werte gruppieren Java Basics - Anfänger-Themen 6
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Kontoauszug mit Datum ausgeben Java Basics - Anfänger-Themen 4
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
T Datum mit einem Datums-Bereich vergleichen Java Basics - Anfänger-Themen 10
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
P Liste nach Datum sortieren Java Basics - Anfänger-Themen 7
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
B String in Datum Java Basics - Anfänger-Themen 3
M CompareTo soll Datum sortieren Java Basics - Anfänger-Themen 2
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
I Datum und Uhrzeitpattern von Locale Java Basics - Anfänger-Themen 7
H Wie wandel ich ein Datum in eine Zeichenkette um mit StringBuffer? Java Basics - Anfänger-Themen 3
I Datum ohne GregorianCalendar und co. Java Basics - Anfänger-Themen 3
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
N Datum abgleichen und Frage zum Layout Java Basics - Anfänger-Themen 3
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
M Aktuelles Datum in MySQL speichern Java Basics - Anfänger-Themen 11
P Datum umwandeln Java Basics - Anfänger-Themen 5
A Datum formatieren Java Basics - Anfänger-Themen 6
K Samstag einer Woche anhand eines Datum Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
B Datum ändern? Java Basics - Anfänger-Themen 8
Tally Methoden BlueJ - Datum als Kalendertag int - tagImJahr Java Basics - Anfänger-Themen 6
K wie Datum in JTable anders anzeigen lassen Java Basics - Anfänger-Themen 2
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
D Hilfe beim SDF Datum Ausgabe Java Basics - Anfänger-Themen 20
A Plausibles Datum Java Basics - Anfänger-Themen 21
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
K Java Datum berechnen Java Basics - Anfänger-Themen 13
L Datum probleme Java Basics - Anfänger-Themen 6
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
S Schleife Datum Java Basics - Anfänger-Themen 11
S Datum ändern bzw. abziehen Java Basics - Anfänger-Themen 3
M String in Datum umwandeln mit SimpleDateFormat Java Basics - Anfänger-Themen 3
E Datentypen Unvollständiges Datum parsen Java Basics - Anfänger-Themen 8
T Heutiges datum OHNE Calendar? Java Basics - Anfänger-Themen 9
K Wie Datum um einen Tag erhöhen? Java Basics - Anfänger-Themen 4
A Datum Prüfen Java Basics - Anfänger-Themen 3
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
A Datum formatieren Java Basics - Anfänger-Themen 8
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
M Datum aus einer Textdatei holen Java Basics - Anfänger-Themen 9
M Datum und Stunde als String ausgeben Java Basics - Anfänger-Themen 15
N Datentypen Datum konvertieren mit kurzer Monatsangabe Java Basics - Anfänger-Themen 3
U Java Datum vergleichen - Sommerzeitproblem Java Basics - Anfänger-Themen 5
R GregorianCalendar auf Datum reduzieren Java Basics - Anfänger-Themen 9
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
F Datum AM / PM parsen Java Basics - Anfänger-Themen 5
A Datentypen Datum mit "May" zu Date parsen Java Basics - Anfänger-Themen 6
F Datum parsen Java Basics - Anfänger-Themen 6
N aktuelle Datum Mikrosekunden genau bestimmen Java Basics - Anfänger-Themen 8
D Letztes Änderungs-Datum als Version automatisch eintragen Java Basics - Anfänger-Themen 5
S Millisekunden in Datum/Uhrzeit wandeln Java Basics - Anfänger-Themen 11
P Datum umwandeln Java Basics - Anfänger-Themen 3
F Einfache Klassen für Datum und Zeit Java Basics - Anfänger-Themen 3
turmaline Kann man ein Datum abrunden? Java Basics - Anfänger-Themen 8
X Datum von dd.MM.yyyy zu yyyy-MM-dd Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben