2017-04-07 52 views
2

我试图获取服务器的当前UTC时间,但它给我te时区时间(UTC + 6),有什么办法让UTC时间不使用设备时间?Android从ntp服务器获取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 

谢谢!

回答

0

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)); 
+0

这很好,谢谢@Femi –

+0

仍然使用设备时间。更改您的设备时间并再次测试代码 – Dawit

相关问题