2011-07-30 66 views
0

所以我發送一個Date.toString()到一個Android手機,服務器是在一個國家,我如何格式化時間,以便它顯示相對於手機的時區?如何將日期格式從一個國家設置到另一個國家?

例如,如果服務器向手機發送5點鐘的CDT,手機將顯示10點鐘的utc?

關於我應該如何實現這一點的任何想法?

+0

您是否可以控制服務器如何格式化時間? – Squonk

+0

是的,我有完整的控制權限,目前我只發送字符串,發送它的最佳方式是什麼,所以它可以重建客戶端? – molleman

回答

1

如果通過字符串發送不是絕對的要求,另一種解決方案是發送UTC毫秒並根據用戶時區重新構建時間。

// on the sever side 
final Date serverTime = new Date(); 
sendToClient(serverTime.getTime()); 
System.out.println("Time sent by server: " + serverTime); 

// on the client 
final long ms = receiveFromServer(); 
final Date clientTime = new Date(); 
clientTime.setTime(ms); 
System.out.println("Time received by client: " + clientTime); 
+0

我將如何重構這個客戶端在java – molleman

+0

更新後,試一試。也讀這篇文章:http://stackoverflow.com/questions/2697549/how-to-make-date-locale-independent –

0

如果你能夠發送以毫秒爲單位的UTC時間,然後看看DateUtils.formatDateTime(...)這將格式化並返回使用本地約定的字符串。

對於flags參數使用DateUtils.FORMAT_XXX常量來指定要包含哪些組件(工作日,年份等)。

相關問題