This commit is contained in:
Looly 2024-07-04 11:59:43 +08:00
parent 52d4a68bca
commit 05e453b23c
8 changed files with 57 additions and 87 deletions

View File

@ -13,6 +13,7 @@
package org.dromara.hutool.core.convert.impl;
import org.dromara.hutool.core.convert.AbstractConverter;
import org.dromara.hutool.core.date.CalendarUtil;
import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.text.StrUtil;
@ -54,21 +55,21 @@ public class CalendarConverter extends AbstractConverter {
protected Calendar convertInternal(final Class<?> targetClass, final Object value) {
// Handle Date
if (value instanceof Date) {
return DateUtil.calendar((Date)value);
return CalendarUtil.calendar((Date)value);
}
// Handle Long
if (value instanceof Long) {
//此处使用自动拆装箱
return DateUtil.calendar((Long)value);
return CalendarUtil.calendar((Long)value);
}
if(value instanceof XMLGregorianCalendar){
return DateUtil.calendar((XMLGregorianCalendar) value);
return CalendarUtil.calendar((XMLGregorianCalendar) value);
}
final String valueStr = convertToStr(value);
return DateUtil.calendar(StrUtil.isBlank(format) ? DateUtil.parse(valueStr) : DateUtil.parse(valueStr, format));
return CalendarUtil.calendar(StrUtil.isBlank(format) ? DateUtil.parse(valueStr) : DateUtil.parse(valueStr, format));
}
}

View File

@ -117,8 +117,8 @@ public class DateBetween implements Serializable {
* @since 3.0.8
*/
public long betweenMonth(final boolean isReset) {
final Calendar beginCal = DateUtil.calendar(begin);
final Calendar endCal = DateUtil.calendar(end);
final Calendar beginCal = CalendarUtil.calendar(begin);
final Calendar endCal = CalendarUtil.calendar(end);
final int betweenYear = endCal.get(Calendar.YEAR) - beginCal.get(Calendar.YEAR);
final int betweenMonthOfYear = endCal.get(Calendar.MONTH) - beginCal.get(Calendar.MONTH);
@ -144,8 +144,8 @@ public class DateBetween implements Serializable {
* @since 3.0.8
*/
public long betweenYear(final boolean isReset) {
final Calendar beginCal = DateUtil.calendar(begin);
final Calendar endCal = DateUtil.calendar(end);
final Calendar beginCal = CalendarUtil.calendar(begin);
final Calendar endCal = CalendarUtil.calendar(end);
final int result = endCal.get(Calendar.YEAR) - beginCal.get(Calendar.YEAR);
if (false == isReset) {

View File

@ -74,7 +74,7 @@ public class DateModifier {
public static Calendar modify(final Calendar calendar, final int dateField, final ModifyType modifyType, final boolean truncateMillisecond) {
// AM_PM上下午特殊处理
if (Calendar.AM_PM == dateField) {
final boolean isAM = DateUtil.isAM(calendar);
final boolean isAM = CalendarUtil.isAM(calendar);
switch (modifyType) {
case TRUNCATE:
calendar.set(Calendar.HOUR_OF_DAY, isAM ? 0 : 12);
@ -141,14 +141,14 @@ public class DateModifier {
switch (modifyType) {
case TRUNCATE:
calendar.set(field, DateUtil.getBeginValue(calendar, field));
calendar.set(field, CalendarUtil.getBeginValue(calendar, field));
break;
case CEILING:
calendar.set(field, DateUtil.getEndValue(calendar, field));
calendar.set(field, CalendarUtil.getEndValue(calendar, field));
break;
case ROUND:
final int min = DateUtil.getBeginValue(calendar, field);
final int max = DateUtil.getEndValue(calendar, field);
final int min = CalendarUtil.getBeginValue(calendar, field);
final int max = CalendarUtil.getEndValue(calendar, field);
final int href;
if (Calendar.DAY_OF_WEEK == field) {
// 星期特殊处理假设周一是第一天中间的为周四

View File

@ -17,7 +17,9 @@ import org.dromara.hutool.core.comparator.CompareUtil;
import org.dromara.hutool.core.date.format.DatePrinter;
import org.dromara.hutool.core.date.format.FastDateFormat;
import org.dromara.hutool.core.date.format.GlobalCustomFormat;
import org.dromara.hutool.core.date.format.parser.*;
import org.dromara.hutool.core.date.format.parser.GlobalRegexDateParser;
import org.dromara.hutool.core.date.format.parser.PositionDateParser;
import org.dromara.hutool.core.date.format.parser.TimeParser;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.text.split.SplitUtil;
@ -43,7 +45,7 @@ import java.util.stream.Collectors;
* @see TimeUtil java8日志工具类
* @see DatePattern 日期常用格式工具类
*/
public class DateUtil extends CalendarUtil {
public class DateUtil {
// region ----- date
@ -62,7 +64,7 @@ public class DateUtil extends CalendarUtil {
* @return 当天开始的时间
*/
public static DateTime today() {
return new DateTime(beginOfDay(Calendar.getInstance()));
return new DateTime(CalendarUtil.beginOfDay(Calendar.getInstance()));
}
/**
@ -501,7 +503,7 @@ public class DateUtil extends CalendarUtil {
* @return Quarter 类似于 20132
*/
public static String yearAndQuarter(final Date date) {
return yearAndQuarter(calendar(date));
return CalendarUtil.yearAndQuarter(CalendarUtil.calendar(date));
}
// region ----- format
@ -764,43 +766,10 @@ public class DateUtil extends CalendarUtil {
* @throws DateException if none of the date patterns were suitable
* @since 5.3.11
*/
public static DateTime parse(final String str, final String... parsePatterns) throws DateException {
public static DateTime parseByPatterns(final String str, final String... parsePatterns) throws DateException {
return date(CalendarUtil.parseByPatterns(str, parsePatterns));
}
/**
* 将日期字符串转换为{@link DateTime}对象格式<br>
* <ol>
* <li>yyyy-MM-dd HH:mm:ss</li>
* <li>yyyy/MM/dd HH:mm:ss</li>
* <li>yyyy.MM.dd HH:mm:ss</li>
* <li>yyyy年MM月dd日 HH时mm分ss秒</li>
* <li>yyyy-MM-dd</li>
* <li>yyyy/MM/dd</li>
* <li>yyyy.MM.dd</li>
* <li>HH:mm:ss</li>
* <li>HH时mm分ss秒</li>
* <li>yyyy-MM-dd HH:mm</li>
* <li>yyyy-MM-dd HH:mm:ss.SSS</li>
* <li>yyyy-MM-dd HH:mm:ss.SSSSSS</li>
* <li>yyyyMMddHHmmss</li>
* <li>yyyyMMddHHmmssSSS</li>
* <li>yyyyMMdd</li>
* <li>EEE, dd MMM yyyy HH:mm:ss z</li>
* <li>EEE MMM dd HH:mm:ss zzz yyyy</li>
* <li>yyyy-MM-dd'T'HH:mm:ss'Z'</li>
* <li>yyyy-MM-dd'T'HH:mm:ss.SSS'Z'</li>
* <li>yyyy-MM-dd'T'HH:mm:ssZ</li>
* <li>yyyy-MM-dd'T'HH:mm:ss.SSSZ</li>
* </ol>
*
* @param dateCharSequence 日期字符串
* @return 日期
*/
public static DateTime parseDateTime(final CharSequence dateCharSequence) {
return date(parse(dateCharSequence));
}
/**
* 将日期字符串转换为{@link DateTime}对象在转换过程中如果字符串中有时区信息表示是指定时区的时间<br>
* 此时此方法会将时区转换为当前时区时间戳会根据时区变化<br>
@ -852,7 +821,7 @@ public class DateUtil extends CalendarUtil {
* @since 4.5.7
*/
public static DateTime truncate(final Date date, final DateField dateField) {
return new DateTime(truncate(calendar(date), dateField));
return new DateTime(CalendarUtil.truncate(CalendarUtil.calendar(date), dateField));
}
/**
@ -864,7 +833,7 @@ public class DateUtil extends CalendarUtil {
* @since 4.5.7
*/
public static DateTime round(final Date date, final DateField dateField) {
return new DateTime(round(calendar(date), dateField));
return new DateTime(CalendarUtil.round(CalendarUtil.calendar(date), dateField));
}
/**
@ -876,7 +845,7 @@ public class DateUtil extends CalendarUtil {
* @since 4.5.7
*/
public static DateTime ceiling(final Date date, final DateField dateField) {
return new DateTime(ceiling(calendar(date), dateField));
return new DateTime(CalendarUtil.ceiling(CalendarUtil.calendar(date), dateField));
}
/**
@ -894,7 +863,7 @@ public class DateUtil extends CalendarUtil {
* @since 4.5.7
*/
public static DateTime ceiling(final Date date, final DateField dateField, final boolean truncateMillisecond) {
return new DateTime(ceiling(calendar(date), dateField, truncateMillisecond));
return new DateTime(CalendarUtil.ceiling(CalendarUtil.calendar(date), dateField, truncateMillisecond));
}
/**
@ -905,7 +874,7 @@ public class DateUtil extends CalendarUtil {
* @since 4.6.2
*/
public static DateTime beginOfSecond(final Date date) {
return new DateTime(beginOfSecond(calendar(date)));
return new DateTime(CalendarUtil.beginOfSecond(CalendarUtil.calendar(date)));
}
/**
@ -916,7 +885,7 @@ public class DateUtil extends CalendarUtil {
* @since 4.6.2
*/
public static DateTime endOfSecond(final Date date) {
return new DateTime(endOfSecond(calendar(date)));
return new DateTime(CalendarUtil.endOfSecond(CalendarUtil.calendar(date)));
}
/**
@ -926,7 +895,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfHour(final Date date) {
return new DateTime(beginOfHour(calendar(date)));
return new DateTime(CalendarUtil.beginOfHour(CalendarUtil.calendar(date)));
}
/**
@ -936,7 +905,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfHour(final Date date) {
return new DateTime(endOfHour(calendar(date)));
return new DateTime(CalendarUtil.endOfHour(CalendarUtil.calendar(date)));
}
/**
@ -946,7 +915,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfMinute(final Date date) {
return new DateTime(beginOfMinute(calendar(date)));
return new DateTime(CalendarUtil.beginOfMinute(CalendarUtil.calendar(date)));
}
/**
@ -956,7 +925,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfMinute(final Date date) {
return new DateTime(endOfMinute(calendar(date)));
return new DateTime(CalendarUtil.endOfMinute(CalendarUtil.calendar(date)));
}
/**
@ -966,7 +935,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfDay(final Date date) {
return new DateTime(beginOfDay(calendar(date)));
return new DateTime(CalendarUtil.beginOfDay(CalendarUtil.calendar(date)));
}
/**
@ -976,7 +945,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfDay(final Date date) {
return new DateTime(endOfDay(calendar(date)));
return new DateTime(CalendarUtil.endOfDay(CalendarUtil.calendar(date)));
}
/**
@ -986,7 +955,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfWeek(final Date date) {
return new DateTime(beginOfWeek(calendar(date)));
return new DateTime(CalendarUtil.beginOfWeek(CalendarUtil.calendar(date)));
}
/**
@ -998,7 +967,7 @@ public class DateUtil extends CalendarUtil {
* @since 5.4.0
*/
public static DateTime beginOfWeek(final Date date, final boolean isMondayAsFirstDay) {
return new DateTime(beginOfWeek(calendar(date), isMondayAsFirstDay));
return new DateTime(CalendarUtil.beginOfWeek(CalendarUtil.calendar(date), isMondayAsFirstDay));
}
/**
@ -1008,7 +977,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfWeek(final Date date) {
return new DateTime(endOfWeek(calendar(date)));
return new DateTime(CalendarUtil.endOfWeek(CalendarUtil.calendar(date)));
}
/**
@ -1020,7 +989,7 @@ public class DateUtil extends CalendarUtil {
* @since 5.4.0
*/
public static DateTime endOfWeek(final Date date, final boolean isSundayAsLastDay) {
return new DateTime(endOfWeek(calendar(date), isSundayAsLastDay));
return new DateTime(CalendarUtil.endOfWeek(CalendarUtil.calendar(date), isSundayAsLastDay));
}
/**
@ -1030,7 +999,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfMonth(final Date date) {
return new DateTime(beginOfMonth(calendar(date)));
return new DateTime(CalendarUtil.beginOfMonth(CalendarUtil.calendar(date)));
}
/**
@ -1040,7 +1009,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfMonth(final Date date) {
return new DateTime(endOfMonth(calendar(date)));
return new DateTime(CalendarUtil.endOfMonth(CalendarUtil.calendar(date)));
}
/**
@ -1050,7 +1019,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfQuarter(final Date date) {
return new DateTime(beginOfQuarter(calendar(date)));
return new DateTime(CalendarUtil.beginOfQuarter(CalendarUtil.calendar(date)));
}
/**
@ -1060,7 +1029,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfQuarter(final Date date) {
return new DateTime(endOfQuarter(calendar(date)));
return new DateTime(CalendarUtil.endOfQuarter(CalendarUtil.calendar(date)));
}
/**
@ -1070,7 +1039,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime beginOfYear(final Date date) {
return new DateTime(beginOfYear(calendar(date)));
return new DateTime(CalendarUtil.beginOfYear(CalendarUtil.calendar(date)));
}
/**
@ -1080,7 +1049,7 @@ public class DateUtil extends CalendarUtil {
* @return {@link DateTime}
*/
public static DateTime endOfYear(final Date date) {
return new DateTime(endOfYear(calendar(date)));
return new DateTime(CalendarUtil.endOfYear(CalendarUtil.calendar(date)));
}
/**
@ -1483,7 +1452,7 @@ public class DateUtil extends CalendarUtil {
if (date1 == null || date2 == null) {
throw new IllegalArgumentException("The date must not be null");
}
return CalendarUtil.isSameDay(calendar(date1), calendar(date2));
return CalendarUtil.isSameDay(CalendarUtil.calendar(date1), CalendarUtil.calendar(date2));
}
/**
@ -1498,7 +1467,7 @@ public class DateUtil extends CalendarUtil {
if (date1 == null || date2 == null) {
throw new IllegalArgumentException("The date must not be null");
}
return CalendarUtil.isSameWeek(calendar(date1), calendar(date2), isMon);
return CalendarUtil.isSameWeek(CalendarUtil.calendar(date1), CalendarUtil.calendar(date2), isMon);
}
/**
@ -1513,7 +1482,7 @@ public class DateUtil extends CalendarUtil {
if (date1 == null || date2 == null) {
throw new IllegalArgumentException("The date must not be null");
}
return CalendarUtil.isSameMonth(calendar(date1), calendar(date2));
return CalendarUtil.isSameMonth(CalendarUtil.calendar(date1), CalendarUtil.calendar(date2));
}
@ -1650,7 +1619,7 @@ public class DateUtil extends CalendarUtil {
if (null == dateToCompare) {
dateToCompare = now();
}
return age(birthday.getTime(), dateToCompare.getTime());
return CalendarUtil.age(birthday.getTime(), dateToCompare.getTime());
}
/**

View File

@ -38,7 +38,7 @@ public class Zodiac {
* @return 星座名
*/
public static String getZodiac(final Date date) {
return getZodiac(DateUtil.calendar(date));
return getZodiac(CalendarUtil.calendar(date));
}
/**
@ -90,7 +90,7 @@ public class Zodiac {
* @return 星座名
*/
public static String getChineseZodiac(final Date date) {
return getChineseZodiac(DateUtil.calendar(date));
return getChineseZodiac(CalendarUtil.calendar(date));
}
/**

View File

@ -170,12 +170,12 @@ public class DateUtilTest {
final Date endOfWeek = DateUtil.endOfWeek(date);
Assertions.assertEquals("2017-03-05 23:59:59", endOfWeek.toString());
final Calendar calendar = DateUtil.calendar(date);
final Calendar calendar = CalendarUtil.calendar(date);
// 一周的开始
final Calendar begin = DateUtil.beginOfWeek(calendar);
final Calendar begin = CalendarUtil.beginOfWeek(calendar);
Assertions.assertEquals("2017-02-27 00:00:00", DateUtil.date(begin).toString());
// 一周的结束
final Calendar end = DateUtil.endOfWeek(calendar);
final Calendar end = CalendarUtil.endOfWeek(calendar);
Assertions.assertEquals("2017-03-05 23:59:59", DateUtil.date(end).toString());
}
@ -184,11 +184,11 @@ public class DateUtilTest {
final String beginStr = "2020-03-11";
final DateTime date = DateUtil.parse(beginStr);
final Calendar calendar = Objects.requireNonNull(date).toCalendar();
final Calendar begin = DateUtil.beginOfWeek(calendar, false);
final Calendar begin = CalendarUtil.beginOfWeek(calendar, false);
Assertions.assertEquals("2020-03-08 00:00:00", DateUtil.date(begin).toString());
final Calendar calendar2 = date.toCalendar();
final Calendar end = DateUtil.endOfWeek(calendar2, false);
final Calendar end = CalendarUtil.endOfWeek(calendar2, false);
Assertions.assertEquals("2020-03-14 23:59:59", DateUtil.date(end).toString());
}

View File

@ -30,6 +30,6 @@ public class Issue3011Test {
calendar2.set(2021, Calendar.FEBRUARY, 12);
Assertions.assertFalse(DateUtil.isSameMonth(calendar1, calendar2));
Assertions.assertFalse(CalendarUtil.isSameMonth(calendar1, calendar2));
}
}

View File

@ -33,8 +33,8 @@ public class RangeTest {
@Test
public void dateRangeTest() {
final DateTime start = DateUtil.parseDateTime("2017-01-01");
final DateTime end = DateUtil.parseDateTime("2017-01-02");
final DateTime start = DateUtil.parse("2017-01-01");
final DateTime end = DateUtil.parse("2017-01-02");
final Range<DateTime> range = new Range<>(start, end, (current, end1, index) -> {
if (current.isAfterOrEquals(end1)) {