Obtener tiempo del servidor de hora público usando TimeTCPClient
Intento usar el siguiente código para obtener la hora del servidor de hora público.
package aaa;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.net.TimeTCPClient;
public final class Main
{
public static java.util.Date getNTPDate() {
List<String> hosts = Arrays.asList("0.pool.ntp.org");
for (String host : hosts) {
TimeTCPClient client = new TimeTCPClient();
// We want to timeout if a response takes longer than 5 seconds
client.setDefaultTimeout(5000);
try {
client.connect(host);
java.util.Date ntpDate = client.getDate();
client.disconnect();
// Just to be extra caution.
if (ntpDate != null) {
return ntpDate;
}
}
catch (java.net.SocketException exp) {
exp.printStackTrace();
}
catch (java.io.IOException exp) {
exp.printStackTrace();
}
}
return null;
}
public static final void main(String[] args)
{
System.out.println(getNTPDate());
}
}
Sin embargo, todo el tiempo, estoy recibiendojava.net.ConnectException: Connection timed out: connect
Intenté buscar en Google varios servidores de tiempo diferentes. Sin embargo, ninguno de ellos funciona. Me preguntaba, ¿el problema está en mi código o en el servidor que elijo?