Récupération précise de l'heure à partir des serveurs de temps Internet en Java
La synchronisation précise de l'heure est cruciale pour de nombreuses applications. S'appuyer uniquement sur les paramètres horaires d'un système local peut entraîner des incohérences. Cet article explique comment exploiter les serveurs de temps Internet tels que in.pool.ntp.org pour obtenir l'heure moyenne de Greenwich (GMT) faisant autorité en Java.
Bibliothèque Java pour la synchronisation de l'heure
Pour récupérer l'heure d'un serveur externe, Java fournit la bibliothèque javax.time.ntp. Il permet d'accéder au Network Time Protocol (NTP), un protocole standardisé pour la synchronisation de l'heure.
Récupération de l'heure à l'aide de NTP
Voici un extrait de code pour récupérer l'heure d'un serveur de temps :
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); } }
Remarque : Les serveurs NTP fournissent généralement des horodatages avec une valeur élevée précision. Pour une précision optimale, envisagez de faire plusieurs requêtes au serveur et de faire la moyenne des résultats.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!