2013-06-21 22 views
0

用戶將消息發佈到我的服務器,與一列是默認CURRENT_TIMESTAMP存儲在數據庫中。如下所示:轉換從服務器接收到的時間字符串轉換爲本地時間

Message Table: 

Sender | Content | SentTime 

Tom | hi there | 2013-06-19 00:13:21 

當用戶發佈消息到我的服務器時,他/她不需要發佈他/她的本地時間。我的數據庫自動記錄該值。我覺得比用戶張貼他/她的時間和信息更好。

後來用戶從服務器檢索郵件以及發送時間。我想知道如何將該時間轉換爲用戶的當地時間。

我使用JSON對服務器進行編碼,然後在我的應用程序數據進行解碼。所以從服務器得到的時間將是一個字符串,如:2013-06-19 00:13:21我想我需要解析這個字符串開始?

+0

你需要以毫秒爲單位的時間? – Blackbelt

+0

您不僅需要使用'Locale'設置正確的格式,還需要了解用戶所處的時區。服務器如何處理此問題? – Phil

+0

@Phil我不認爲服務器需要知道它,它可以記錄特定時區的時間,如EST。然後當它返回到用戶的電話。我可以獲取手機的本地時區並修復從服務器獲得的時間。 – Arch1tect

回答

2

你要解析服務器與SimpeDateFormat返回的字符串:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("EST")); 
Date date = simpleDateFormat.parse("2013-06-19 00:13:21"); 

TimeZone destTz = TimeZone.getTimeZone("yourtimezone"); 
simpleDateFormat.setTimeZone(destTz); 
String result = simpleDateFormat.format(date); 
+0

謝謝,但我不遵循我爲什麼需要ms?也從這裏我怎麼改變它到用戶的當地時間? – Arch1tect

+0

你需要什麼? – Blackbelt

+0

我需要將此時間轉換爲用戶的當地時間。因爲用戶可以在英國,法國在不同的時區... – Arch1tect

相關問題