diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java b/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java
index 30e0decdb..983491cff 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/DateTime.java
@@ -45,7 +45,7 @@ public class DateTime extends Date {
* @param customUseJdkToStringStyle 是否使用{@link Date}默认的toString()格式
* @since 5.7.21
*/
- public static void setUseJdkToStringStyle(final boolean customUseJdkToStringStyle){
+ public static void setUseJdkToStringStyle(final boolean customUseJdkToStringStyle) {
useJdkToStringStyle = customUseJdkToStringStyle;
}
@@ -134,7 +134,7 @@ public class DateTime extends Date {
/**
* 当前时间
*
- * @param timeZone 时区
+ * @param timeZone 时区,{@code null}表示默认时区
* @since 4.1.2
*/
public DateTime(final TimeZone timeZone) {
@@ -156,8 +156,8 @@ public class DateTime extends Date {
/**
* 给定日期的构造
*
- * @param date 日期
- * @param timeZone 时区
+ * @param date 日期,{@code null}表示当前时间
+ * @param timeZone 时区,{@code null}表示默认时区
* @since 4.1.2
*/
public DateTime(final Date date, final TimeZone timeZone) {
@@ -167,7 +167,7 @@ public class DateTime extends Date {
/**
* 给定日期的构造
*
- * @param calendar {@link Calendar}
+ * @param calendar {@link Calendar},不能为{@code null}
*/
public DateTime(final Calendar calendar) {
this(calendar.getTime(), calendar.getTimeZone());
@@ -177,7 +177,7 @@ public class DateTime extends Date {
/**
* 给定日期Instant的构造
*
- * @param instant {@link Instant} 对象
+ * @param instant {@link Instant} 对象,不能为{@code null}
* @since 5.0.0
*/
public DateTime(final Instant instant) {
@@ -945,19 +945,21 @@ public class DateTime extends Date {
/**
* 是否为本月最后一天
+ *
* @return 是否为本月最后一天
* @since 5.8.8
*/
- public boolean isLastDayOfMonth(){
+ public boolean isLastDayOfMonth() {
return dayOfMonth() == getLastDayOfMonth();
}
/**
* 获得本月的最后一天
+ *
* @return 天
* @since 5.8.8
*/
- public int getLastDayOfMonth(){
+ public int getLastDayOfMonth() {
return monthEnum().getLastDay(isLeapYear());
}
@@ -973,7 +975,7 @@ public class DateTime extends Date {
*/
@Override
public String toString() {
- if(useJdkToStringStyle){
+ if (useJdkToStringStyle) {
return super.toString();
}
return toString(this.timeZone);
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
index 225fff071..dfed3e3db 100755
--- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
@@ -89,11 +89,14 @@ public class DateUtil extends CalendarUtil {
* {@link Date}类型时间转为{@link DateTime}
* 如果date本身为DateTime对象,则返回强转后的对象,否则新建一个DateTime对象
*
- * @param date {@link Date}
+ * @param date {@link Date},如果传入{@code null},返回{@code null}
* @return 时间对象
* @since 3.0.7
*/
public static DateTime date(final Date date) {
+ if (date == null) {
+ return null;
+ }
if (date instanceof DateTime) {
return (DateTime) date;
}
@@ -103,33 +106,42 @@ public class DateUtil extends CalendarUtil {
/**
* {@link XMLGregorianCalendar}类型时间转为{@link DateTime}
*
- * @param date {@link XMLGregorianCalendar}
+ * @param date {@link XMLGregorianCalendar},如果传入{@code null},返回{@code null}
* @return 时间对象
* @since 6.0.0
*/
public static DateTime date(final XMLGregorianCalendar date) {
+ if (date == null) {
+ return null;
+ }
return date(date.toGregorianCalendar());
}
/**
* 根据已有{@link Date} 产生新的{@link DateTime}对象
*
- * @param date Date对象
+ * @param date Date对象,如果传入{@code null},返回{@code null}
* @return {@link DateTime}对象
* @since 4.3.1
*/
public static DateTime dateNew(final Date date) {
+ if (date == null) {
+ return null;
+ }
return new DateTime(date);
}
/**
* 根据已有{@link Date} 产生新的{@link DateTime}对象,并根据指定时区转换
*
- * @param date Date对象
- * @param timeZone 时区
+ * @param date Date对象,如果传入{@code null},返回{@code null}
+ * @param timeZone 时区,传入{@code null}则使用默认时区
* @return {@link DateTime}对象
*/
public static DateTime date(final Date date, final TimeZone timeZone) {
+ if (date == null) {
+ return null;
+ }
return new DateTime(date, timeZone);
}
@@ -148,10 +160,13 @@ public class DateUtil extends CalendarUtil {
* {@link Calendar}类型时间转为{@link DateTime}
* 始终根据已有{@link Calendar} 产生新的{@link DateTime}对象
*
- * @param calendar {@link Calendar}
+ * @param calendar {@link Calendar},如果传入{@code null},返回{@code null}
* @return 时间对象
*/
public static DateTime date(final Calendar calendar) {
+ if (calendar == null) {
+ return null;
+ }
return new DateTime(calendar);
}
@@ -159,11 +174,14 @@ public class DateUtil extends CalendarUtil {
* {@link TemporalAccessor}类型时间转为{@link DateTime}
* 始终根据已有{@link TemporalAccessor} 产生新的{@link DateTime}对象
*
- * @param temporalAccessor {@link TemporalAccessor},常用子类: {@link LocalDateTime}、 LocalDate
+ * @param temporalAccessor {@link TemporalAccessor},常用子类: {@link LocalDateTime}、 LocalDate,如果传入{@code null},返回{@code null}
* @return 时间对象
* @since 5.0.0
*/
public static DateTime date(final TemporalAccessor temporalAccessor) {
+ if (temporalAccessor == null) {
+ return null;
+ }
return new DateTime(temporalAccessor);
}
@@ -2016,7 +2034,7 @@ public class DateUtil extends CalendarUtil {
// x>b||a>y 无交集
// 则有交集的逻辑为 !(x>b||a>y)
// 根据德摩根公式,可化简为 x<=b && a<=y 即 realStartTime<=endTime && startTime<=realEndTime
- return realStartTime.compareTo(endTime) <=0 && startTime.compareTo(realEndTime) <= 0;
+ return realStartTime.compareTo(endTime) <= 0 && startTime.compareTo(realEndTime) <= 0;
}
/**