在 Java 中從 Internet 時間伺服器準確獲取時間
準確同步時間對於許多應用程式至關重要。僅依賴本地系統的時間設定可能會導致不一致。本文探討如何利用 Java 中的 in.pool.ntp.org 等網路時間伺服器來取得權威的格林威治標準時間 (GMT)。
Java 時間同步函式庫
為了從外部伺服器擷取時間,Java 提供了 javax.time.ntp 函式庫。它允許存取網路時間協定 (NTP),這是一種用於時間同步的標準化協定。
使用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從Internet時間伺服器準確取得時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!