ホームページ >Java >&#&チュートリアル >Java でインターネット タイム サーバーから時間を正確に取得するにはどうすればよいですか?

Java でインターネット タイム サーバーから時間を正確に取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 19:44:02325ブラウズ

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

Java でインターネット タイム サーバーから時刻を正確に取得する

時刻を正確に同期することは、多くのアプリケーションにとって重要です。ローカル システムの時刻設定のみに依存すると、不整合が発生する可能性があります。この記事では、in.pool.ntp.org などのインターネット タイム サーバーを利用して、Java で権威のあるグリニッジ標準時 (GMT) を取得する方法について説明します。

時刻同期用の Java ライブラリ

外部サーバーから時間を取得するために、Java は javax.time.ntp ライブラリを提供します。これにより、時刻同期用の標準化プロトコルである Network Time Protocol (NTP) へのアクセスが可能になります。

NTP を使用した時刻の取得

ここに、時刻同期用の標準プロトコルである Network Time Protocol (NTP) へのアクセスが可能です。タイムサーバー:

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);
    }
}

注: NTP サーバーは通常、高精度のタイムスタンプを提供します。最適な精度を得るには、サーバーに対して複数のリクエストを実行し、結果を平均することを検討してください。

以上がJava でインターネット タイム サーバーから時間を正確に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。