diff --git a/src/main/java/org/olat/core/util/DateUtils.java b/src/main/java/org/olat/core/util/DateUtils.java index 7da4c0386ad19edabf8de95ada24cdb5c33e9060..0777af70b7ca226caea49f80a738684135a5b4ce 100644 --- a/src/main/java/org/olat/core/util/DateUtils.java +++ b/src/main/java/org/olat/core/util/DateUtils.java @@ -120,16 +120,10 @@ public class DateUtils { * @return */ public static Date copyTime(Date date, Date from) { - Calendar fromCalendar = new GregorianCalendar(); - fromCalendar.setTime(from); - - Calendar toCalendar = new GregorianCalendar(); - toCalendar.setTime(date); - toCalendar.set(Calendar.HOUR, fromCalendar.get(Calendar.HOUR)); - toCalendar.set(Calendar.MINUTE, fromCalendar.get(Calendar.MINUTE)); - toCalendar.set(Calendar.SECOND, fromCalendar.get(Calendar.SECOND)); - - return toCalendar.getTime(); + LocalDateTime ldtDate = toLocalDateTime(date); + LocalDateTime ldtfrom = toLocalDateTime(from); + LocalDateTime localDateTime = LocalDateTime.of(ldtDate.toLocalDate(), ldtfrom.toLocalTime()); + return toDate(localDateTime); } public static Date addDays(Date date, int days) { diff --git a/src/main/java/org/olat/course/nodes/appointments/ui/RecurringAppointmentsController.java b/src/main/java/org/olat/course/nodes/appointments/ui/RecurringAppointmentsController.java index 8fee5eb9fa53b5cb743a26c2ef4864342d1f3c3c..9cbc29eaf7f3ac0e1099b2826b0e1d504d9cbb0a 100644 --- a/src/main/java/org/olat/course/nodes/appointments/ui/RecurringAppointmentsController.java +++ b/src/main/java/org/olat/course/nodes/appointments/ui/RecurringAppointmentsController.java @@ -169,6 +169,10 @@ public class RecurringAppointmentsController extends FormBasicController { private void doSaveReccuringAppointments() { Date firstStart = recurringFirstEl.getDate(); Date firstEnd = recurringFirstEl.getSecondDate(); + + System.out.println(firstStart); + System.out.println(firstEnd); + Date last = recurringLastEl.getDate(); last = DateUtils.setTime(last, 23, 59, 59); @@ -185,6 +189,9 @@ public class RecurringAppointmentsController extends FormBasicController { Date end = DateUtils.copyTime(start, firstEnd); appointment.setEnd(end); + System.out.println(start); + System.out.println(end); + String location = locationEl.getValue(); appointment.setLocation(location); diff --git a/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java b/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java index b7e1471cfed3885c207ce0bbd59368981bac4c4f..aefbe7d9df71f723bfe2d83125652f40b82639ae 100644 --- a/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java +++ b/src/main/java/org/olat/modules/lecture/ui/EditLectureBlockController.java @@ -396,6 +396,8 @@ public class EditLectureBlockController extends FormBasicController { } lectureBlock.setStartDate(dateEl.getDate()); lectureBlock.setEndDate(dateEl.getSecondDate()); + System.out.println(dateEl.getDate()); + System.out.println(dateEl.getSecondDate()); int plannedLectures = Integer.parseInt(plannedLecturesEl.getSelectedKey()); lectureBlock.setPlannedLecturesNumber(plannedLectures); diff --git a/src/test/java/org/olat/core/util/DateUtilsTest.java b/src/test/java/org/olat/core/util/DateUtilsTest.java index f0472676ae378ec5b6b7077b033cf01558594e9b..952e6408d35bbb8afbba91f23bc5dce536dbe57e 100644 --- a/src/test/java/org/olat/core/util/DateUtilsTest.java +++ b/src/test/java/org/olat/core/util/DateUtilsTest.java @@ -29,6 +29,7 @@ import java.util.EnumSet; import java.util.GregorianCalendar; import java.util.List; +import org.assertj.core.api.SoftAssertions; import org.junit.Test; /** @@ -50,12 +51,19 @@ public class DateUtilsTest { @Test public void shouldCopyTime() { - Date date = new GregorianCalendar(2020, 5, 1, 10, 0, 0).getTime(); - Date from = new GregorianCalendar(2020, 8, 20, 8, 3, 2).getTime(); + SoftAssertions softly = new SoftAssertions(); + + softly.assertThat(DateUtils.copyTime( + new GregorianCalendar(2020, 5, 1, 10, 0, 0).getTime(), + new GregorianCalendar(2020, 8, 20, 8, 3, 2).getTime()) + ).isEqualTo(new GregorianCalendar(2020, 5, 1, 8, 3, 2).getTime()); - date = DateUtils.copyTime(date, from); + softly.assertThat(DateUtils.copyTime( + new GregorianCalendar(2020, 5, 1, 10, 0, 0).getTime(), + new GregorianCalendar(2020, 5, 1, 10, 0, 0).getTime()) + ).isEqualTo(new GregorianCalendar(2020, 5, 1, 10, 0, 0).getTime()); - assertThat(date).isEqualTo(new GregorianCalendar(2020, 5, 1, 8, 3, 2).getTime()); + softly.assertAll(); } @Test