Java 分析rrule时出错,dtstart格式不正确

Java 分析rrule时出错,dtstart格式不正确,java,spring-mvc,rfc2445,Java,Spring Mvc,Rfc2445,我正在处理重复出现的问题,并使用google-rfc-2445库 在这一点上,我尝试了许多不同的方法,似乎我的DateTime变量的格式不正确,我不确定发生了什么 输出如下所示2015-05-05T17:11:11.000-05:00 在数据库中,它看起来像这样2015-05-05 22:11:11.0 我得到的错误如下所示 java.text.ParseException: cannot parse [[DTSTART=20150505T221111Z]] in [RRULE, recur]

我正在处理重复出现的问题,并使用google-rfc-2445库

在这一点上,我尝试了许多不同的方法,似乎我的DateTime变量的格式不正确,我不确定发生了什么

输出如下所示
2015-05-05T17:11:11.000-05:00
在数据库中,它看起来像这样
2015-05-05 22:11:11.0

我得到的错误如下所示

java.text.ParseException: cannot parse [[DTSTART=20150505T221111Z]] in [RRULE, recur]
我尝试格式化输出,但没有成功

Date d = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

try{
    d = df.parse(event.getDtStart().toString());
    DateIterator date = DateIteratorFactory.createDateIterator("RRULE:" + event.getrRule(), d, TimeZone.getTimeZone(event.getTimeZone()), true);
} catch (ParseException e) {
    e.printStackTrace();
}
我想问题是我的DTStart格式不正确,但老实说,在这一点上我不知道。它的格式很奇怪


建议?

我发现了这个问题,这很愚蠢。因此,我使用.js在前端构建rrule

正在输出的rrule如下所示。
'FREQ=每月一次;DTSTART=20000201T060000Z;间隔=454;WKST=SU;按小时=10;按分钟=47;秒=5;BYDAY=TH'

您不能在rrule中使用dtstart。所以我把它拆下来,用这个做了起来

String rrule = event.getrRule().replaceAll("(DTSTART.*?;)","");
DateTimeIterator date2 = DateTimeIteratorFactory.createDateTimeIterator("RRULE:" + rrule, event.getDtStart(),DateTimeZone.forTimeZone(TimeZone.getTimeZone(event.getTimeZone())), true);
它就像一个符咒


希望这对其他人有帮助

我发现我用这个迭代器多出了一天的时间。