gpt4 book ai didi

java - 我无法使用 iCal4j 正确设置 Activity 日期

转载 作者:行者123 更新时间:2023-11-30 02:14:00 26 4
gpt4 key购买 nike

我正在使用 iCal4j 为 Spring Boot 应用程序生成预订日历,但所有日期都比应有的多一个月、少两天。

例如:(dd/MM/yyyy) 在 iCal 中为 22/03/2018,我得到 20/04/2018

调试,我发现所有日期和值都正确。因此我猜问题始于此类的构造函数:

net.fortuna.ical4j.model.Date

Date start = new Date(arrival);
Date end = new Date(departure);

这是我的方法代码,其中日期的类型为 LocalDate:

public Calendar getPropertyICal(Integer idproperty) throws SocketException {

//Initializing an iCal4j calendar
Calendar iCal = new Calendar();
iCal.getProperties().add(new ProdId("-//RentalWebs//iCal4j 1.0 by Ben Fortuna//EN"));
iCal.getProperties().add(Version.VERSION_2_0);
iCal.getProperties().add(CalScale.GREGORIAN);
HostInfo host = new SimpleHostInfo("rentalwebs.com");

List<Booking> upcomingBookings = bookingRepository.getUpcomingBookings(idproperty);

for(Booking bkng : upcomingBookings){

java.util.Calendar arrival = java.util.Calendar.getInstance();
arrival.set(java.util.Calendar.MONTH, bkng.getDatefrom().getMonth().getValue());
arrival.set(java.util.Calendar.DAY_OF_MONTH, bkng.getDatefrom().getDayOfMonth());
arrival.set(java.util.Calendar.YEAR, bkng.getDatefrom().getYear());

LocalDate lastNight = bkng.getDateto().minusDays(1);
java.util.Calendar departure = java.util.Calendar.getInstance();
departure.set(java.util.Calendar.MONTH, lastNight.getMonth().getValue());
departure.set(java.util.Calendar.DAY_OF_MONTH, lastNight.getDayOfMonth());
departure.set(java.util.Calendar.YEAR, lastNight.getYear());

Location propertyName = new Location(propertyRepository.getPropertyById(bkng.getIdproperty()).getName());
String guestName = bkng.getSurname() + ", " + bkng.getName();

Date start = new Date(arrival);
Date end = new Date(departure);

VEvent booking = new VEvent(start, end, guestName);

UidGenerator ug = new UidGenerator(host, LocalDate.now().toString());//Unique identifier
booking.getProperties().add(ug.generateUid());
booking.getProperties().add(propertyName);

iCal.getComponents().add(booking);

}

return iCal;
}

服务器位于法兰克福,java.util.Calendar类的构造函数获取中欧语言环境,这是可以的。

最佳答案

Calendar.MONTH 从零开始,因此如果您的预订舱位使用 1-12 表示月份,则在设置日历时需要减一。

不确定具体日期,但也许四月而不是三月这一事实可能会对日期产生影响。

关于java - 我无法使用 iCal4j 正确设置 Activity 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49201202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com