2015-10-05 65 views
0

我嘗試了所有關於SO的其他問題的所有方法,但我無法使其工作。這讓我想要自殺。在不改變時間的情況下將喬達日期時間轉換爲另一個時區

我有一些類似於「04:00 AM AEST」的時間,除了AEST是一個小故障,它們應該是GMT。我想要做的是將它們改爲「04:00 GMT」,然後將它們轉換爲正確的AEST時間(在本例中爲「14:00 AEST」)。我嘗試了一切,沒有任何工作。最接近的是使用來自原始日期的每個單獨值手動創建新的DateTime,例如,

DateTime dt = new DateTime(origdate.year, origdate.month, origdate.day, origdate.hour, origdate.minute, origdate.second, timezone.GMT) 

但由於某些原因,結果就出來了四年半鍾了,因爲時區的小時和半小時的不同是怪異。

回答

0

第1種方法通過以下幾行,你會得到GMT時間在指定的格式:

 Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); 
 
    Date currentLocalTime = cal.getTime(); 
 
    DateFormat date = new SimpleDateFormat("dd-MM-yyy HH:mm:ss z"); 
 
    date.setTimeZone(TimeZone.getTimeZone("GMT")); 
 
    String gmtTime = date.format(currentLocalTime);

因此,從格林尼治標準時間您可以得到任何地方的時間。

第2種方法您可以獲取當前位置的系統時間以毫秒爲單位:

Long current_time = System.currentTimeMillis()/1000L;

希望它能幫助。

相關問題