0

我们刚刚开始使用iCal4j生成 iCalendar 文件。没有时区,一切似乎都可以正常工作,但是,一旦我们尝试从注册表中获取时区(无论时区是什么),它就会返回 null,因此我们无法检索 VTimeZone。

这是我们尝试过的:

TimeZoneRegistry registry=TimeZoneRegistryFactory.getInstance().createRegistry();
TimeZone timeZone = registry.getTimeZone(TimeZone.getDefault().getID()); // no matter what we pass here, it returns null
if (timeZone == null) { 
    System.out.println("Timezone is null"); 
}else{
    VTimeZone tz=timeZone.getVTimeZone(); //never executed
}

可能我们遗漏了一些非常小的东西,但不确定是什么。这里的任何帮助将不胜感激。

编辑1:

刚刚在 Eclipse 上的 java 项目中导入了相同的代码,这似乎工作正常。会不会和多米诺骨牌有关?

4

1 回答 1

0

ical4j 正在使用各种 ClassLoader.getResourceAsStream() 调用从 ical4j jar 文件中加载 VTIMEZONE,因此,如果您处于具有不允许此类访问的自定义类加载器的环境中,那么事情将无法正常工作。

于 2015-05-27T06:51:32.073 回答