我决定从 5.5 升级到 Optaplanner 7.5 Nurseroster,但遇到了一些愚蠢的问题。下面是其中之一。我之前使用的例程如下。然而现在新版本需要 LocalDate。我有一个 MySql 数据库后端,用户通过日历选择名册日程规划器。任何建议将不胜感激。
int shiftDateSize = maxDayIndex + 1;
List<ShiftDate> shiftDateList = new ArrayList<ShiftDate>(shiftDateSize);
//shiftDateMap = new HashMap<String, ShiftDate>(shiftDateSize);
long id = 0L;
int dayIndex = 0;
calendar.setTime(startDate);
for (int i = 0; i < shiftDateSize; i++) {
ShiftDate shiftDate = new ShiftDate();
shiftDate.setId(id);
shiftDate.setDayIndex(dayIndex);
**String dateString = dateFormat.format(calendar.getTime());**
shiftDate.setDateString(dateString);
**shiftDate.setDayOfWeek(DayOfWeek.valueOfCalendar(calendar.get(Calendar.DAY_OF_WEEK)));**
shiftDate.setShiftList(new ArrayList<Shift>());
shiftDateList.add(shiftDate);
shiftDateMap.put(dateString, shiftDate);
id++;
dayIndex++;
calendar.add(Calendar.DAY_OF_YEAR, 1);
}
nurseRoster.setShiftDateList(shiftDateList);
}
我尝试过以下代码来获取本地日期 from Calendar
Calendar calendar = Calendar.getInstance();
TimeZone tz = calendar.getTimeZone();
ZoneId zid = tz == null ? ZoneId.systemDefault() : tz.toZoneId();
LocalDate localDate = LocalDateTime.ofInstant(calendar.toInstant(), zid).LocalDate();
或者简单地一行:
LocalDate localDate = LocalDateTime.ofInstant(calendar.toInstant(), calendar.getTimeZone().toZoneId()).toLocalDate();
我已按照此链接执行以下步骤将日历转换为本地日期时间 https://www.logicbig.com/how-to/java-8-date-time-api/calender-to-localdatetime.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)