2017-04-15 143 views
-1

我以GMT格式獲取字符串時間格式,如下所示:「2000-01-01T12:00:00.000Z」,我想將其轉換爲可讀的日期/時間格式。我不知道該怎麼辦呢Android將GMT轉換爲當前本地時間

我用下面的代碼,但它似乎並不工作

 schedules = matrix.get("schedules").getAsJsonArray(); 
     schedules_array = schedules.get(0).getAsJsonObject(); 
     final String open = schedules_array.get("open").getAsString(); 

     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
     try { 
      Date date = format.parse(open); 
      Log.d("OPEN", String.valueOf(date)); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

請在發佈之前先搜索Stack Overflow。這個話題已經有很多次了。此外,您正在使用現在由java.time類取代的麻煩遺留類。查看適用於Android的ThreeTenABP項目。 –

回答

2

首先,由於您的輸入有毫秒,固定格式字符串:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); 

然後你有兩種選擇:

  1. 調用之前添加以下語句:

    format.setTimeZone(TimeZone.getTimeZone("UTC")); 
    
  2. 更改爲使用的時區中輸入字符串格式:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); 
    

我建議的第二個。

+0

非常感謝你,這是我想要做的:) –

相關問題