我有iCalendar日期時間值,採用UTC格式20160217T121209Z。有人能告訴我如何解析並將其轉換爲也包含時間值的Java Date對象嗎?將iCalendar DateTime轉換爲Java日期對象
更新:我的終值,當我打印日期必須是這樣的:
週三02月17日12時12分09秒CET 2016
我有iCalendar日期時間值,採用UTC格式20160217T121209Z。有人能告訴我如何解析並將其轉換爲也包含時間值的Java Date對象嗎?將iCalendar DateTime轉換爲Java日期對象
更新:我的終值,當我打印日期必須是這樣的:
週三02月17日12時12分09秒CET 2016
請不要忘記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參考。
這是如何將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);
請參閱我的更新,我不想印花T和Z,並希望在正常的Java日期對象格式的結果 – Hoysala
@Hoysala是的,我的解決方案產生了這一標準表示(「星期四18年12月17日: 42:18 CET 2015「)。我的回答的第一行是針對Rahul Tripathi錯誤的貢獻。 –