Android从ntp服务器获取UTC时间

标签 android networking time utc ntp

我正在尝试获取服务器的当前 UTC 时间,但它给了我时区时间 (UTC+6),有没有办法在不使用设备时间的情况下获得 UTC 时间?

我的代码:

NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName("time1.google.com");
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime = timeInfo.getMessage().getOriginateTimeStamp().getTime();
long returnTime2 = timeInfo.getReturnTime();
Date current = new Date(returnTime);
Date current1 = new Date(returnTime2);
Log.i("actualtime", current.toString()); //it give me UTC+6
Log.i("actualtime",current1.toString()); //it give me UTC+6

谢谢!

最佳答案

Date.toString() 始终返回时区特定的输出。您的 returnTime 变量实际上可能是正确的纪元时间:如果您想打印出 UTC,请使用 SimpleDateFormat 来执行此操作。像这样:

SimpleDateFormat fmt = new SimpleDateFormat("yyy-MM-dd'T'HH:mm:ssZ");
fmt.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println("UTC time: " + fmt.format(current));

关于Android从ntp服务器获取UTC时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43268613/

相关文章:

java - 位图周围的圆形边框

java - 我无法使用 Socket.IO-client Java 连接到服务器

java - Sonar-runner执行失败导致cast异常

Java TCP 套接字连接被拒绝

java - 什么是 TCP 窗口更新?

c# - WebRequest.DefaultWebProxy 和 WebRequest.GetSystemWebProxy() 有什么区别?

python - 脚本 B 减慢了脚本 A

android - 当我只能处理文件或文件路径时如何处理 SAF?

java - 避免 Instant.toEpochMilli() 算术溢出

algorithm - 一个问题涵盖所有时间复杂度