2011-09-19 26 views
0

好吧,所以我幾乎試過一切。我敢打賭這很簡單,但我似乎無法得到它。服務器時區java轉換

服務器向我發送時間,這是時代。但是,當我把它放入日期對象時,它似乎會自動選取時區,並且它會在服務器時間中增加+3。所以如果gmt時間是00.00,它說它是03.00。

我還需要添加我自己的時區。假設新紀元時間再次爲00.00,在添加時區之後,它應該讀爲10.00。

任何幫助將不勝感激。謝謝

回答

0

「它似乎添加」 - 我懷疑你使用Date.toString()這確實使用本地時區。儘管如此,Date對象本身在UTC中是有效的。使用DateFormat可以轉換爲字符串,您可以指定使用哪個時區。您可能還需要使用Calendar - 這取決於您要做的事情。

(或者,首先使用Joda Time,這是一個更好的API。但是對於您的Android項目來說可能有點笨重,如果某處出現了「Joda Time lite」項目,我不會感到驚訝正是這個類的事情......)

編輯:快速樣品,雖然它不是完全清楚你需要什麼...

long millis = getMillisFromServer(); 
Date date = new Date(millis); 
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
format.setTimeZone(customTimeZone); 
String formatted = format.format(date); 
+0

我能有一個例子。我需要將它與其他東西進行比較 – Hades

+0

@Hades:現在已經添加了一個,儘管它不完全清楚你想要做什麼,或者你需要什麼樣的格式。 –

+0

似乎很好......謝謝 – Hades