2016-02-17 42 views
0

我有iCalendar日期時間值,採用UTC格式20160217T121209Z。有人能告訴我如何解析並將其轉換爲也包含時間值的Java Date對象嗎?將iCalendar DateTime轉換爲Java日期對象

更新:我的終值,當我打印日期必須是這樣的:

週三02月17日12時12分09秒CET 2016

回答

2

請不要忘記interprete尾隨將z作爲UTC +00:00這是ISO-8601標準。

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 
java.util.Date d = sdf.parse("20151217T174218Z"); 
System.out.println(d); // output in your system timezone using toString() 

如果您對Java的7或更高版本,你也可以使用模式「yyyyMMdd'T'HHmmssX」和省略第二線設置UTC參考。

+0

請參閱我的更新,我不想印花T和Z,並希望在正常的Java日期對象格式的結果 – Hoysala

+0

@Hoysala是的,我的解決方案產生了這一標準表示(「星期四18年12月17日: 42:18 CET 2015「)。我的回答的第一行是針對Rahul Tripathi錯誤的貢獻。 –

2

這是如何將iCalendar DateTime轉換爲Java Date對象。 假設icalendar日期爲20151217T174218Z

 String icalvalue = "20151217T174218Z"; 
     SimpleDateFormat dateFormat = new SimpleDateFormat(
       "yyyyMMdd'T'HHmmss'Z'"); 
     dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
     Date date = null; 
     try { 
      date = dateFormat.parse(icalvalue); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     System.out.println(date);