我试图将简单的导出函数实现到ics文件中。事件导出良好,但时间有问题-它们在导出的文件中丢失,但以原始格式存在。这是代码:
时区时区=时区.getTimeZone(e.getOrder().getTimeZone());long timeZoneOffset=TimeUnit.MILLISECOND.toMinutes(timeZone.getOffset(now.getTime()));
startDate = new net.fortuna.ical4j.model.Date(DateUtils.addMinutes(e.getStartDateTime(), (int) timeZoneOffset).getTime());
endDate = new net.fortuna.ical4j.model.Date(DateUtils.addMinutes(e.getEndDateTime(), (int) timeZoneOffset).getTime());
event = new VEvent(startDate, endDate, e.getOrder().getDescription());
event.getProperties().add(TimeZoneRegistryFactory.getInstance().createRegistry().getTimeZone(e.getOrder().getTimeZone()).getVTimeZone().getTimeZoneId());
event.getProperties().add(new UidGenerator("CA").generateUid());
calendar.getComponents().add(event);
我错过了什么?提前谢谢!
我无法重现您的代码,因为您没有完全正确地粘贴代码示例(也许您可以这样做并包括导入?这将使回答您的问题更加容易)。
但是,您是否已经查看了每两周库(请参阅:http://sourceforge.net/projects/biweekly/)?对我来说,它看起来很简单:易于理解,你不需要摆弄iCal4j Date/TimeZone类等,这在我第一次看的时候似乎很麻烦。
以下是一些示例代码,让您一窥其相当直观的用法:
ICalendar icals = new ICalendar();
VEvent event = new VEvent();
event.setDateStart(new Date());
event.setDateEnd(new Date());
event.setDescription("some description");
icals.setProductId("some product ID");
icals.addEvent(event);
WriterChainText text = Biweekly.write(icals);
System.out.println(text.go());
它可以通过Maven轻松包含,使用:
<dependency>
<groupId>net.sf.biweekly</groupId>
<artifactId>biweekly</artifactId>
<version>0.3.3</version>
</dependency>
希望有帮助吗?