日期时间工具-DateUtil的使用
由来
考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装。这其中的封装主要是日期和字符串之间的转换,以及提供对日期的定位(一个月前等等)。
对于Date对象,为了便捷,使用了一个DateTime类来代替之,继承自Date对象,主要的便利在于,覆盖了toString()方法,返回yyyy-MM-dd HH:mm:ss形式的字符串,方便在输出时的调用(例如日志记录等)
具体使用
DateUtil常用的方法的使用
// 获取当前时间 dataTime
DateTime dateTime = DateUtil.date();
// 获取当前时间字符串
String now = DateUtil.now();
// 获取当前时间 Calendar 类型转换为DateTime
DateTime dateTime1 = DateUtil.date(Calendar.getInstance());
// 字符串转换成日期类型
// parseDateTime
// 解析日期时间字符串,格式支持:
// yyyy-MM-dd HH:mm:ss
// yyyy/MM/dd HH:mm:ss
// yyyy.MM.dd HH:mm:ss
// yyyy年MM月dd日 HH:mm:ss
String nowDate="2019-12-12 12:12:12";
DateTime parseDateTime = DateUtil.parseDateTime(nowDate);
// 格式化成 jdk1.8 中日期
LocalDateTime parseLocalDateTime = DateUtil.parseLocalDateTime(nowDate);
// 将日期字符串转换为DateTime对象,格式:
//yyyy-MM-dd HH:mm:ss
//yyyy/MM/dd HH:mm:ss
//yyyy.MM.dd HH:mm:ss
//yyyy年MM月dd日 HH时mm分ss秒
//yyyy-MM-dd
//yyyy/MM/dd
//yyyy.MM.dd
//HH:mm:ss
//HH时mm分ss秒
//yyyy-MM-dd HH:mm
//yyyy-MM-dd HH:mm:ss.SSS
//yyyyMMddHHmmss
//yyyyMMddHHmmssSSS
//yyyyMMdd
//EEE, dd MMM yyyy HH:mm:ss z
//EEE MMM dd HH:mm:ss zzz yyyy
//yyyy-MM-dd'T'HH:mm:ss'Z'
//yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
//yyyy-MM-dd'T'HH:mm:ssZ
//yyyy-MM-dd'T'HH:mm:ss.SSSZ
DateTime parse = DateUtil.parse(nowDate);
// 自定义转换格式
DateTime parse1 = DateUtil.parse(nowDate, "yyyy-MM-dd");
// 将日期类型转换成指定的字符串类型
String format = DateUtil.format(DateUtil.date(), "yyyy-MM-dd");
// 转换成jdk1.8中的日期格式
LocalDateTime localDateTime = DateUtil.toLocalDateTime(DateUtil.date());
// 将jdk1.8中的日期进行格式化
String localFormat = DateUtil.format(localDateTime, "yyyy-MM-dd HH:mm:ss");
dateTime类的使用
// 将jdk中的时间类进行转换
Date date = new Date();
// 获取当前的时间 第一种方式 使用 .of
DateTime dateTime = DateTime.of(date);
DateTime now = DateTime.now();
// 第二种方式 使用 实例化对象的方式
DateTime dateTime1 = new DateTime(date);
// 格式化为字符串
String s = dateTime.toString();
if (s instanceof String) {
System.out.println(s);
}