/**
-
给定日期的构造
-
@param date 日期
*/
public DateTime(Date date) {
this(
date,//
(date instanceof DateTime) ? ((DateTime) date).timeZone : TimeZone.getDefault()
);
}
代码里写了一个多目运算,(date instanceof DateTime) ? ((DateTime) date).timeZone : TimeZone.getDefault()。
传入的date是否是DateTime类型,如果是,直接取DateTime对象的时区,如果不是,取系统默认时区。
然后调用这个方法[](()DateTime(Date date, TimeZone timeZone)
//DateTime 类
/**
-
给定日期的构造
-
@param date 日期
-
@param timeZone 时区
-
@since 4.1.2
*/
public DateTime(Date date, TimeZone timeZone) {
this(ObjectUtil.defaultIfNull(date, new Date()).getTime(), timeZone);
}
ObjectUtil.defaultIfNull(date, new Date()).getTime()
要 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 拆成2个调用
1、ObjectUtil.defaultIfNull(date, new Date())
2、Date.getTime()
ObjectUtil.defaultIfNull是Hutool封装的一个工具类,用来判断数据对象是否为null,如果是,返回默认值
源码如下
/**
-
如果给定对象为{@code null}返回默认值
-
ObjectUtil.defaultIfNull(null, null) = null
-
ObjectUtil.defaultIfNull(null, “”) = “”
-
ObjectUtil.defaultIfNull(null, “zz”) = “zz”
-
ObjectUtil.defaultIfNull(“abc”,