Создайте повторение с помощью iCal4j с учетом перехода на летнее время

#java #timezone #timezone-offset #ical4j

Вопрос:

Используя библиотеку iCal4j, я могу создать все вхождения повторения, начиная с rrule и даты начала.

Этот код работает нормально, но проблема возникает, когда я создаю повторение, которое начинается во время летнего времени и заканчивается стандартным временем или наоборот.

Может ли iCal4j работать с переходом на летнее время? Как?

     private String rrule;
    private Date dtStart;
    private Date until;

public ArrayList<Event> createRecurEventList() throws Exception {

        ArrayList<Event> eventsList = new ArrayList<>();

        RRule iCalRRule = new RRule(rrule);
        DateTime dateTimeStart = new DateTime(dtStart);
        DateTime untilDate = (DateTime) iCalRRule.getRecur().getUntil();

        DtStart dtStartProp = new DtStart(dateTimeStart);
        Duration durationProp = new Duration(java.time.Duration.ofMinutes(eventsDuration));

        VEvent vEvent = new VEvent();

        vEvent.getProperties().add(dtStartProp);
        vEvent.getProperties().add(durationProp);
        vEvent.getProperties().add(iCalRRule);

        Period period = new Period(dateTimeStart, untilDate);

        PeriodList periods = vEvent.calculateRecurrenceSet(period);
        for (Period p : periods) {
            Event event = new ELEvent(ownerId, calId, expId);
            event.setDtStart(p.getStart());
            event.setDtEnd(p.getEnd());
            event.setDuration(p.getDuration().get(ChronoUnit.SECONDS));
            eventsList.add(elEvent);
        }

        return elEventsList;
    }