Heim >Java >javaLernprogramm >Wie kann ich die Zeit genau von Internet-Zeitservern in Java abrufen?

Wie kann ich die Zeit genau von Internet-Zeitservern in Java abrufen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 19:44:02314Durchsuche

How to Fetch Time Accurately from Internet Time Servers in Java?

Genaues Abrufen der Zeit von Internet-Zeitservern in Java

Die genaue Synchronisierung der Zeit ist für viele Anwendungen von entscheidender Bedeutung. Sich ausschließlich auf die Zeiteinstellungen eines lokalen Systems zu verlassen, kann zu Inkonsistenzen führen. In diesem Artikel wird untersucht, wie Sie Internet-Zeitserver wie in.pool.ntp.org nutzen können, um die maßgebliche Greenwich Mean Time (GMT) in Java zu erhalten.

Java-Bibliothek für Zeitsynchronisation

Um die Zeit von einem externen Server abzurufen, stellt Java die Bibliothek javax.time.ntp bereit. Es ermöglicht den Zugriff auf das Network Time Protocol (NTP), ein standardisiertes Protokoll zur Zeitsynchronisierung.

Zeit mit NTP abrufen

Hier ist ein Codeausschnitt zum Abrufen der Zeit von a Zeitserver:

import javax.time.ntp.NTPUDPClient;
import javax.time.ntp.TimeInfo;
import java.net.InetAddress;
import java.util.Date;

public class TimeSync {

    public static void main(String[] args) throws Exception {
        // Specify the time server hostname
        String TIME_SERVER = "in.pool.ntp.org";

        // Create an NTP UDP client
        NTPUDPClient timeClient = new NTPUDPClient();

        // Get the server's IP address
        InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);

        // Retrieve time information from the server
        TimeInfo timeInfo = timeClient.getTime(inetAddress);

        // Get the time at which the packet was sent by the server
        long returnTime = timeInfo.getMessage().getTransmitTimeStamp().getTime();

        // Convert the epoch time to a Date object
        Date time = new Date(returnTime);

        // Print the synchronized time
        System.out.println("Current GMT time: " + time);
    }
}

Hinweis: NTP-Server stellen normalerweise Zeitstempel mit hoher Präzision bereit. Für eine optimale Genauigkeit sollten Sie mehrere Anfragen an den Server stellen und die Ergebnisse mitteln.

Das obige ist der detaillierte Inhalt vonWie kann ich die Zeit genau von Internet-Zeitservern in Java abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn