package helper; import com.yanzuoguang.util.exception.ExceptionHelper; import com.yanzuoguang.util.helper.DateHelper; import com.yanzuoguang.util.helper.JsonHelper; import com.yanzuoguang.util.thread.ThreadHelper; import org.junit.Assert; import org.junit.Test; import java.text.ParseException; import java.util.Date; import java.util.List; public class TestDateHelper { @Test public void testDateZero() throws ParseException { Date date = new Date(0); System.out.println("本日:" + DateHelper.getDateTimeString(date)); } @Test public void testDateHelper() throws ParseException { Date date = new Date(); System.out.println("本日:" + DateHelper.getDateTimeString(DateHelper.getDayStart(date))); System.out.println("本日:" + DateHelper.getDateTimeString(DateHelper.getDayEnd(date))); System.out.println("本月:" + DateHelper.getDateTimeString(DateHelper.getMonthStart(date))); System.out.println("本月:" + DateHelper.getDateTimeString(DateHelper.getMonthEnd(date))); System.out.println("本年:" + DateHelper.getDateTimeString(DateHelper.getYearStart(date))); System.out.println("本年:" + DateHelper.getDateTimeString(DateHelper.getYearEnd(date))); System.out.println("本周:" + DateHelper.getDateTimeString(DateHelper.getWeekStart(date))); System.out.println("本周:" + DateHelper.getDateTimeString(DateHelper.getWeekEnd(date))); System.out.println("2022-11-27 周:" + DateHelper.getDateTimeString(DateHelper.getWeekStart(DateHelper.getDateTime("2022-11-27")))); System.out.println("2022-11-27 周:" + DateHelper.getDateTimeString(DateHelper.getWeekEnd(DateHelper.getDateTime("2022-11-27")))); System.out.println("2022-11-26 周:" + DateHelper.getDateTimeString(DateHelper.getWeekStart(DateHelper.getDateTime("2022-11-26")))); System.out.println("2022-11-26 周:" + DateHelper.getDateTimeString(DateHelper.getWeekEnd(DateHelper.getDateTime("2022-11-26")))); System.out.println("本季度:" + DateHelper.getDateTimeString(DateHelper.getMonth3Start(date))); System.out.println("本季度:" + DateHelper.getDateTimeString(DateHelper.getMonth3End(date))); System.out.println("当前时间刻度:" + DateHelper.getHourUnitTime(new Date())); } @Test public void testDateHelper1() { Date date = DateHelper.getDateTime("2010-1-1"); ThreadHelper.sleep(50); Date date1 = DateHelper.getDateTime("2010-1-1"); System.out.println("日期转换时间是否相等:" + (date.getTime() == date1.getTime())); } @Test public void testDateHelper2() { try { Date date = DateHelper.getDateTime("00:00:00"); System.out.println("日期转换时间是否相等:" + (date != null)); } catch (Exception ex) { ExceptionHelper.PrintError(TestDateHelper.class, ex); } } @Test public void testSplitDay() { List days = DateHelper.splitDayTime(new DateHelper.Day("2023-7-1 10:00:00", "2023-7-31 19:00:00")); String json = JsonHelper.serialize(days); System.out.println(json); Assert.assertEquals("[{\"from\":\"2023-07-01 10:00:00\",\"to\":\"2023-07-01 23:59:59\"},{\"from\":\"2023-07-02 00:00:00\",\"to\":\"2023-07-02 23:59:59\"},{\"from\":\"2023-07-03 00:00:00\",\"to\":\"2023-07-03 23:59:59\"},{\"from\":\"2023-07-04 00:00:00\",\"to\":\"2023-07-04 23:59:59\"},{\"from\":\"2023-07-05 00:00:00\",\"to\":\"2023-07-05 23:59:59\"},{\"from\":\"2023-07-06 00:00:00\",\"to\":\"2023-07-06 23:59:59\"},{\"from\":\"2023-07-07 00:00:00\",\"to\":\"2023-07-07 23:59:59\"},{\"from\":\"2023-07-08 00:00:00\",\"to\":\"2023-07-08 23:59:59\"},{\"from\":\"2023-07-09 00:00:00\",\"to\":\"2023-07-09 23:59:59\"},{\"from\":\"2023-07-10 00:00:00\",\"to\":\"2023-07-10 23:59:59\"},{\"from\":\"2023-07-11 00:00:00\",\"to\":\"2023-07-11 23:59:59\"},{\"from\":\"2023-07-12 00:00:00\",\"to\":\"2023-07-12 23:59:59\"},{\"from\":\"2023-07-13 00:00:00\",\"to\":\"2023-07-13 23:59:59\"},{\"from\":\"2023-07-14 00:00:00\",\"to\":\"2023-07-14 23:59:59\"},{\"from\":\"2023-07-15 00:00:00\",\"to\":\"2023-07-15 23:59:59\"},{\"from\":\"2023-07-16 00:00:00\",\"to\":\"2023-07-16 23:59:59\"},{\"from\":\"2023-07-17 00:00:00\",\"to\":\"2023-07-17 23:59:59\"},{\"from\":\"2023-07-18 00:00:00\",\"to\":\"2023-07-18 23:59:59\"},{\"from\":\"2023-07-19 00:00:00\",\"to\":\"2023-07-19 23:59:59\"},{\"from\":\"2023-07-20 00:00:00\",\"to\":\"2023-07-20 23:59:59\"},{\"from\":\"2023-07-21 00:00:00\",\"to\":\"2023-07-21 23:59:59\"},{\"from\":\"2023-07-22 00:00:00\",\"to\":\"2023-07-22 23:59:59\"},{\"from\":\"2023-07-23 00:00:00\",\"to\":\"2023-07-23 23:59:59\"},{\"from\":\"2023-07-24 00:00:00\",\"to\":\"2023-07-24 23:59:59\"},{\"from\":\"2023-07-25 00:00:00\",\"to\":\"2023-07-25 23:59:59\"},{\"from\":\"2023-07-26 00:00:00\",\"to\":\"2023-07-26 23:59:59\"},{\"from\":\"2023-07-27 00:00:00\",\"to\":\"2023-07-27 23:59:59\"},{\"from\":\"2023-07-28 00:00:00\",\"to\":\"2023-07-28 23:59:59\"},{\"from\":\"2023-07-29 00:00:00\",\"to\":\"2023-07-29 23:59:59\"},{\"from\":\"2023-07-30 00:00:00\",\"to\":\"2023-07-30 23:59:59\"},{\"from\":\"2023-07-31 00:00:00\",\"to\":\"2023-07-31 19:00:00\"}]", json); } @Test public void testSplitDay1() { List days = DateHelper.splitDayTime(new DateHelper.Day("2023-7-1 10:00:00", "2023-7-1 19:00:00")); String json = JsonHelper.serialize(days); System.out.println(json); Assert.assertEquals("[{\"from\":\"2023-07-01 10:00:00\",\"to\":\"2023-07-01 19:00:00\"}]", json); } @Test public void testDayMonth() { Date dt = DateHelper.getDateTime("2023-12-12 15:59:59"); Assert.assertEquals(2023, DateHelper.getYear(dt)); Assert.assertEquals(12, DateHelper.getMonth(dt)); Assert.assertEquals(12, DateHelper.getDay(dt)); Assert.assertEquals(15, DateHelper.getHour(dt)); } @Test public void getEndDate() { // 同一分钟的最后时间 Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:59", "yyyy-MM-dd HH:mm:ss"), "2023-12-12 15:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 23:59:01", "yyyy-MM-dd HH:mm:ss"), "2023-12-12 23:59:01" ); // 同一分钟的最后时间 Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:59", "yyyy-MM-dd HH:mm:00"), "2023-12-12 15:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 23:59:01", "yyyy-MM-dd HH:mm:00"), "2023-12-12 23:59:59" ); // 同一小时的最后时间 Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:03:59", "yyyy-MM-dd HH:00:00"), "2023-12-12 15:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:01", "yyyy-MM-dd HH:00:00"), "2023-12-12 15:59:59" ); // 同一天的最后时间 Assert.assertEquals( DateHelper.getToTime("2023-12-12 12:03:59", "yyyy-MM-dd 00:00:00"), "2023-12-12 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:01", "yyyy-MM-dd 00:00:00"), "2023-12-12 23:59:59" ); // 同一月的最后时间 Assert.assertEquals( DateHelper.getToTime("2023-1-15 12:03:59", "yyyy-MM-01 00:00:00"), "2023-01-31 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-02-12 15:59:01", "yyyy-MM-01 00:00:00"), "2023-02-28 23:59:59" ); // 同一年的最后时间 Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:59", "yyyy-01-01 00:00:00"), "2023-12-31 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-01-12 15:59:59", "yyyy-01-01 00:00:00"), "2023-12-31 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-01-12 15:59:59", "yyyy-01-01 00:00:00"), "2023-12-31 23:59:59" ); // 同一小时的最后秒,不计算分钟 Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:03:59", "yyyy-MM-dd HH:00:ss"), "2023-12-12 15:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:01", "yyyy-MM-dd HH:00:ss"), "2023-12-12 15:59:59" ); // 同一月中的最后小时 Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:03:59", "yyyy-MM-01 HH:00:00"), "2023-12-31 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:01", "yyyy-MM-01 HH:00:00"), "2023-12-31 23:59:59" ); // 同一年中的最后小时 Assert.assertEquals( DateHelper.getToTime("2023-05-12 15:03:59", "yyyy-01-01 HH:00:00"), "2023-12-31 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:01", "yyyy-01-01 HH:00:00"), "2023-12-31 23:59:59" ); // 同一年中的最后日 Assert.assertEquals( DateHelper.getToTime("2023-05-12 15:03:59", "yyyy-01-dd 00:00:00"), "2023-12-31 23:59:59" ); Assert.assertEquals( DateHelper.getToTime("2023-12-12 15:59:01", "yyyy-01-dd 00:00:00"), "2023-12-31 23:59:59" ); } @Test public void getFromDate() { // 同一分钟的最后时间 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:59", "yyyy-MM-dd HH:mm:ss"), "2023-12-12 15:59:59" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 23:59:01", "yyyy-MM-dd HH:mm:ss"), "2023-12-12 23:59:01" ); // 同一分钟的最后时间 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:59", "yyyy-MM-dd HH:mm:00"), "2023-12-12 15:59:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 23:59:01", "yyyy-MM-dd HH:mm:00"), "2023-12-12 23:59:00" ); // 同一小时的最后时间 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:03:59", "yyyy-MM-dd HH:00:00"), "2023-12-12 15:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:01", "yyyy-MM-dd HH:00:00"), "2023-12-12 15:00:00" ); // 同一天的最后时间 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 12:03:59", "yyyy-MM-dd 00:00:00"), "2023-12-12 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:01", "yyyy-MM-dd 00:00:00"), "2023-12-12 00:00:00" ); // 同一月的最后时间 Assert.assertEquals( DateHelper.getFromTime("2023-1-15 12:03:59", "yyyy-MM-01 00:00:00"), "2023-01-01 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-02-12 15:59:01", "yyyy-MM-01 00:00:00"), "2023-02-01 00:00:00" ); // 同一年的最后时间 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:59", "yyyy-01-01 00:00:00"), "2023-01-01 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-01-12 15:59:59", "yyyy-01-01 00:00:00"), "2023-01-01 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-01-12 15:59:59", "yyyy-01-01 00:00:00"), "2023-01-01 00:00:00" ); // 同一小时的最后秒,不计算分钟 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:03:59", "yyyy-MM-dd HH:00:ss"), "2023-12-12 15:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:01", "yyyy-MM-dd HH:00:ss"), "2023-12-12 15:00:00" ); // 同一月中的最后小时 Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:03:59", "yyyy-MM-01 HH:00:00"), "2023-12-01 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:01", "yyyy-MM-01 HH:00:00"), "2023-12-01 00:00:00" ); // 同一年中的最后小时 Assert.assertEquals( DateHelper.getFromTime("2023-05-12 15:03:59", "yyyy-01-01 HH:00:00"), "2023-01-01 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:01", "yyyy-01-01 HH:00:00"), "2023-01-01 00:00:00" ); // 同一年中的最后日 Assert.assertEquals( DateHelper.getFromTime("2023-05-12 15:03:59", "yyyy-01-dd 00:00:00"), "2023-01-01 00:00:00" ); Assert.assertEquals( DateHelper.getFromTime("2023-12-12 15:59:01", "yyyy-01-dd 00:00:00"), "2023-01-01 00:00:00" ); } }