首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iCal4j示例片段产生错误的输出

iCal4j示例片段产生错误的输出
EN

Stack Overflow用户
提问于 2022-05-24 14:20:54
回答 1查看 138关注 0票数 0

当我运行这个链接下面的代码片段时,不会产生输出。

https://www.ical4j.org/examples/model/#creating-a-meeting-of-four-hour-duration

代码只输出以下内容:

代码语言:javascript
运行
复制
BEGIN:VCALENDAR
END:VCALENDAR

如果我做错了什么,请有人指点。

P.S.:我已经更正了编译错误,现在代码运行良好。

下面是我正在运行的修改过的代码片段:

代码语言:javascript
运行
复制
import net.fortuna.ical4j.data.CalendarOutputter
import net.fortuna.ical4j.model.DateTime
import net.fortuna.ical4j.model.TimeZoneRegistry
import net.fortuna.ical4j.model.TimeZoneRegistryFactory
import net.fortuna.ical4j.model.component.VEvent
import net.fortuna.ical4j.model.component.VTimeZone
import net.fortuna.ical4j.model.parameter.Cn
import net.fortuna.ical4j.model.parameter.Role
import net.fortuna.ical4j.model.property.Attendee
import net.fortuna.ical4j.model.property.CalScale
import net.fortuna.ical4j.model.property.ProdId
import net.fortuna.ical4j.model.property.Uid
import net.fortuna.ical4j.util.Calendars
import net.fortuna.ical4j.util.MapTimeZoneCache
import net.fortuna.ical4j.util.RandomUidGenerator
import net.fortuna.ical4j.util.UidGenerator

import java.time.LocalDateTime
import java.time.Month
import java.time.ZoneId

System.setProperty("net.fortuna.ical4j.timezone.cache.impl", MapTimeZoneCache.class.getName());
// Create a TimeZone
TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
TimeZone timezone = registry.getTimeZone("America/Mexico_City");
VTimeZone tz = timezone.getVTimeZone();

// Start Date is on: April 1, 2008, 9:00 am
java.util.Calendar startDate = new GregorianCalendar();
startDate.setTimeZone(timezone);
startDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL);
startDate.set(java.util.Calendar.DAY_OF_MONTH, 1);
startDate.set(java.util.Calendar.YEAR, 2008);
startDate.set(java.util.Calendar.HOUR_OF_DAY, 9);
startDate.set(java.util.Calendar.MINUTE, 0);
startDate.set(java.util.Calendar.SECOND, 0);

// End Date is on: April 1, 2008, 13:00
java.util.Calendar endDate = new GregorianCalendar();
endDate.setTimeZone(timezone);
endDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL);
endDate.set(java.util.Calendar.DAY_OF_MONTH, 1);
endDate.set(java.util.Calendar.YEAR, 2008);
endDate.set(java.util.Calendar.HOUR_OF_DAY, 13);
endDate.set(java.util.Calendar.MINUTE, 0);
endDate.set(java.util.Calendar.SECOND, 0);

// Create the event
String eventName = "Progress Meeting";
LocalDateTime start = LocalDateTime.of(2022, Month.APRIL, 30, 12, 00)
LocalDateTime end = LocalDateTime.of(2022, Month.APRIL, 30, 12, 30)
VEvent meeting = new VEvent(start, end, eventName);

// add timezone info..
meeting.getProperties().add(tz.getTimeZoneId().get());

// generate unique identifier..
UidGenerator ug = new RandomUidGenerator();
Uid uid = ug.generateUid();
meeting.getProperties().add(uid);

// add attendees..
Attendee dev1 = new Attendee(URI.create("mailto:dev1@mycompany.com"));
dev1.getParameters().add(Role.REQ_PARTICIPANT);
dev1.getParameters().add(new Cn("Developer 1"));
meeting.getProperties().add(dev1);

Attendee dev2 = new Attendee(URI.create("mailto:dev2@mycompany.com"));
dev2.getParameters().add(Role.OPT_PARTICIPANT);
dev2.getParameters().add(new Cn("Developer 2"));
meeting.getProperties().add(dev2);

// Create a calendar
net.fortuna.ical4j.model.Calendar icsCalendar = new net.fortuna.ical4j.model.Calendar();
icsCalendar.getProperties().add(new ProdId("-//Events Calendar//iCal4j 1.0//EN"));
icsCalendar.getProperties().add(CalScale.GREGORIAN);



// Add the event and print
icsCalendar.getComponents().add(meeting);
System.out.println(icsCalendar);

OutputStream byteOutputStream = new ByteArrayOutputStream();
CalendarOutputter calendarOutputter = new CalendarOutputter(false)
calendarOutputter.output(icsCalendar, byteOutputStream)

println new String(byteOutputStream.toByteArray())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-24 15:06:43

我想通了。我用的是4.0.0-alpha版本。但是,当我切换到版本: 3.2.2时,它工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72364597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档