2017-10-16 127 views
0

我必須將2017-10-12T09:48:28.338Z轉換爲IST,即dd-MM-yyyy HH:mm:ss。我使用的代碼拋出java.lang.IllegalArgumentException: Unknown pattern character 'Y'在IST中轉換UTC時間

這裏是我的代碼:

private String getStandardTime(String dateStr) { 
     SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dddd'T'HH:mm:ss.SSSZ"); 
     df.setTimeZone(TimeZone.getTimeZone("UTC")); 
     Date date = null; 
     try { 
      date = df.parse(dateStr); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     df.setTimeZone(TimeZone.getDefault()); 
     String formattedDate = df.format(date); 
     return formattedDate; 
    } 

誰能幫助我在這裏?我做錯了什麼。 參考我檢查

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number

+2

你真的有一個約會qith4位作爲一天? – Jens

+0

什麼是你的日期中的字符'Z':? '2017-10-12T09:48:28.338Z'? – Jens

+0

你知道'SimpleDateFormat'不是線程安全類嗎? – Lokesh

回答

0

嘗試使用下面的行代碼:

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

Z表示時區的性格,你要引用它像 'Z'。你也使用dddd而不是dd。

+0

你的回答幫了我。萬分感謝 。 –

+0

歡迎@DeepakRathore並感謝您接受答案。 –