2014-10-14 12 views
0

ics 파일에 간단한 내보내기 기능을 구현하려고합니다. 이벤트가 제대로 내보내기되었지만 시간에 문제가 있습니다. 내보내기 된 파일에는 누락되었지만 원래 형식으로 존재합니다. 다음은 코드입니다.iCal4j로 이벤트 시간 설정

TimeZone timeZone = TimeZone.getTimeZone (e.getOrder(). getTimeZone()); long timeZoneOffset = TimeUnit.MILLISECONDS.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); 

내가 무엇을 놓쳤는가? 미리 감사드립니다.

답변

2

코드 예제를 완벽하고 올바르게 붙여 넣지 않았기 때문에 코드를 재현 할 수 없었습니다. (어쩌면 그렇게 할 수 있고 가져 오기를 포함 할 수 있습니까?) 그러면 질문에보다 쉽게 ​​답할 수 있습니다.

그러나 그럼에도 불구하고 격주로 라이브러리 (http://sourceforge.net/projects/biweekly/ 참조)를 이미 보았습니까? 이해하기 쉽고 iCal4j Date/TimeZone 클래스 등을 망칠 필요가 없습니다. 첫 번째 엿보기에서 꽤 귀찮은 것 같습니다. 여기

몇 가지 예제 코드는 당신이 매우 직관적 인 사용의에 대해 엿볼주고있다 :

그것은 사용 Maven을 통해 쉽게 포함시킬 수
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()); 

: 도움이

<dependency> 
    <groupId>net.sf.biweekly</groupId> 
    <artifactId>biweekly</artifactId> 
    <version>0.3.3</version> 
</dependency> 

희망?