2017-10-16 99 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并感谢您接受答案。 –