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 サイトの他の関連記事を参照してください。