Java: Holen Sie sich aktuelle Datum und Zeit vom Server nicht die System-Uhr
In meinem Java Programm brauche ich zum erstellen einer Instanz der aktuelle moment in der Zeit. Ich benutze
Date date = new Date();
Gibt mir das aktuelle Datum und die Uhrzeit gemäß der host-Computer die system-Uhr. Gibt es eine Möglichkeit, ich kann das aktuelle Datum und die Uhrzeit von einem server im Internet? Die Welt-Zeit-server vielleicht?
Habe ich gesehen, dieser Beitrag und es beschreibt, was ich will, aber ich fürchte, ich brauche mehr Hilfe als das, was vorgesehen ist es.
Kurz gesagt, ich möchte ein Datum und eine Zeit, die nicht abhängig von der host-Maschine, der system-Uhr.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben, könnten Sie einen Blick auf die Java-NTP-Client-demo verfügbar
http://www.docjar.com/html/api/examples/ntp/NTPClient.java.html
und einige Beispiel-code, der verwendet diese client -
http://www.docjar.com/html/api/examples/ntp/TimeClient.java.html
Es ist etwa 170 Linien von gut dokumentierten java-code.
Lokalen Netzwerk
Wenn Ihr Computer ist an das lokale Netz angeschlossen, eine Verbindung zu einigen Rechner als vertrauenswürdig Zeit-server. Sie konnte schreiben Sie Ihre eigenen time-server.
Network Time Protocol
Oder verwenden Sie den ausgetretenen (Network Time Protocol (NTP) mit vorhandenen server-und client-Implementierungen gebündelt mit den meisten OS. Für mehr darauf, sehen die akzeptierte Antwort von aioobe.
Erwägen Sie, die Zeit-server-computer in Netzwerk DMZ so updates von Zeit-Servern im Internet, wie die pool.ntp.org Projekt oder die von der Bundesregierung der USA (NIST).
Internet
Wenn Ihr Computer verbunden ist, im Internet eine Verbindung zu einem vertrauenswürdigen Zeitserver. Wie oben besprochen, verwenden Sie ein benutzerdefiniertes Protokoll wie ein web service, oder verwenden Sie NTP.
Diese diskutiert wird die Frage, wie man meine java-app Holen Sie sich die Globale Zeit, die von einigen online-Uhr.
Siehe auch die Fragen: Java-NTP-client, und Java-client für Zeit-server, wie etwa NTP (Network Time Protocol).
Funkuhr
Erhalten eine radio Uhr mit einem USB Verbindung für die Ausgabe der aktuellen Zeit synchronisiert, indem Sie einen Zeit-code, übertragen von einem Sender verbunden sind, um ein Zeit-standard wie eine Atom-Uhr. Die Sender sind Rundfunk in vielen Ländern auf der ganzen Welt.
Den Meinberg Global Unternehmen, zumindest bietet mehrere solcher Geräte.
GPS
Ähnlich wie die radio-Uhren über, ein Empfänger des GPS (Global Positioning System) Signale könnte auch erfassen und relais die Zeit signal. Oder vielleicht GALILEO, GLONASS oder andere Radionavigation-satellite service.
Sonnenuhr
Position ein Sonnenuhr außerhalb eines Fensters. Befestigen Sie ein webcam, um den computer in Frage. Positionieren Sie die webcam in das Fenster. Schreiben Sie eine app, um zu interpretieren, die Zeit des Tages mit dem aktuellen Bild der Sonnenuhr.
Einschränkung: Diese Lösung funktioniert nicht in Seattle.
java.time.Clock
Nutzbar zu machen, die diesen Anbieter von den aktuellen moment, schreiben Sie eine Unterklasse der abstrakten
java.Zeit.Uhr
Klasse.Können Sie übergeben Sie Ihre
Clock
Umsetzung als argument, um die verschiedenen java.Zeit Methoden. Zum Beispiel,Sofortige.jetzt( Uhr )
.Für Testzwecke, beachten Sie die alternativen Implementierungen von
Clock
verfügbar statisch ausClock
selbst:fixed
,offset
,tick
und mehr.Vermeiden Sie die legacy-Datum-Zeit-Klassen aus den ersten Versionen von Java, wie zum Beispiel
Date
&Calendar
. Diese lästigen Klassen sind völlig überlagert von der java.Zeit Klassen.Über java.Zeit
Den java.Zeit framework ist in Java 8 und höher. Diese Klassen verdrängen die lästige alte legacy Datum-Zeit-Klassen wie
java.util.Date
,Calendar
, &" = SimpleDateFormat
.Den Joda-Time Projekt, jetzt in Wartung-Modus, rät der migration auf die java.Zeit Klassen.
Um mehr zu erfahren, siehe die Oracle Tutorial. Und die Suche Stack Overflow für viele Beispiele und Erklärungen. Spezifikation JSR 310.
Können Sie exchange java.Zeit Objekte direkt mit Ihrer Datenbank. Verwenden Sie eine JDBC-Treiber kompatibel mit JDBC 4.2 oder später. Keine Notwendigkeit für Streicher, keine Notwendigkeit für
java.sql.*
Klassen.Wo erhalten Sie die java.Zeit-Klassen?
Den ThreeTen-Extra Projekt erweitert die java.mal mit zusätzlicher Klassen. Dieses Projekt ist ein Testgelände für mögliche künftige Erweiterungen zu java.Zeit. Sie finden möglicherweise einige nützliche Klassen, die hier wie
Interval
,YearWeek
,YearQuarter
, und mehr.Können Sie den folgenden code verwenden:
Normalerweise-Server synchronisieren Ihre Zeit regelmäßig mit online-Zeit-Server. Also deine server-Zeit sollte korrekt sein. Wenn nicht, Kontaktieren Sie Ihren admin.
Zu bekommen, z.B. die GMT-Zeit, benutzen Sie den Kalender und die Zeitzone Klassen.