2017-04-07 106 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