diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java index 03f233035..8e3752531 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java @@ -674,10 +674,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { // public static String date2HexStr(Date date) { // return Cp56Time2aUtil.date2HexStr(date); // } - public static void main(String[] args) { - String yesterdayStr = getYesterdayStr(); - System.out.println(yesterdayStr); - } + /** * 获取两个时间的间隔时间 * @@ -1034,4 +1031,54 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { return maxDate; } + public static LocalDateTime convertToLocalDateTime(String time, boolean isNextDay) { + LocalTime localTime = LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm:ss")); + LocalDateTime now = LocalDateTime.now(); + LocalDateTime dateTime = now.with(localTime); + + if (isNextDay) { + dateTime = dateTime.plusDays(1); + } + + return dateTime; + } + + /** + * 转换预约时间 + * @param startTime + * @param endTime + * @return + */ + public static LocalDateTime[] convertStartAndEndTime(String startTime, String endTime) { + LocalTime startLocalTime = LocalTime.parse(startTime, DateTimeFormatter.ofPattern("HH:mm:ss")); + LocalTime endLocalTime = LocalTime.parse(endTime, DateTimeFormatter.ofPattern("HH:mm:ss")); + + LocalDateTime now = LocalDateTime.now(); + LocalDateTime startDateTime = now.with(startLocalTime); + LocalDateTime endDateTime = now.with(endLocalTime); + + // 如果结束时间比开始时间小或相同,则结束时间为第二天 + if (endLocalTime.isBefore(startLocalTime) || endLocalTime.equals(startLocalTime)) { + endDateTime = endDateTime.plusDays(1); + } + + return new LocalDateTime[]{startDateTime, endDateTime}; + } + + public static void main(String[] args) { + String startTime = "22:00:00"; + String endTime1 = "05:30:00"; + String endTime2 = "22:00:00"; + + LocalDateTime[] dateTime1 = convertStartAndEndTime(startTime, endTime1); + LocalDateTime[] dateTime2 = convertStartAndEndTime(startTime, endTime2); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + System.out.println("Start DateTime: " + dateTime1[0].format(formatter)); + System.out.println("End DateTime (Next Day): " + dateTime1[1].format(formatter)); + + System.out.println("Start DateTime: " + dateTime2[0].format(formatter)); + System.out.println("End DateTime (Same Day): " + dateTime2[1].format(formatter)); + } + }