使用ical4j 1.0.6,我试图从" DTSTART ..."中实例化一个DateTime。串。即使对于DateTime documentation和ical4j wiki中列出的有效示例,构造函数也会抛出ParserException
String date = "DTSTART;TZID=US-Eastern:19970714T133000";
try {
DateTime dt = new DateTime(date);
} catch (ParseException e) {
e.printStackTrace(); //always thrown
}
java.text.ParseException: Unparseable date: "DTSTART;TZID=US-Eastern:19970714T133000" (at offset 0)
我已尝试将KEY_RELAXED_PARSING设置为true,但无济于事。
我做错了什么?
答案 0 :(得分:1)
查看javadoc,构造函数DateTime(String)说:
构造一个新的DateTime实例,解析默认(本地)时区中指定的字符串表示。
所以我想" DSTART"和" TZID"字符串的一部分太多了。
要设置特定的TimeZone,请阅读Working with timezones。
部分答案 1 :(得分:0)
我最终使用了这段代码
String[] parts = property.split(":");
if (parts.length > 1) {
try {
String timezone = parts[0].replace("DTSTART;TZID=", "");
DtStart start = new DtStart();
start.getParameters().add(Value.DATE_TIME);
start.getParameters().add(new TzId(timezone));
start.setValue(parts[1]);
} catch (ParseException e) {
e.printStackTrace();
}
}