目录
获取当前时间
格式化日期输出
获取Date对象
开始和结束时间
日期时间偏移
日期时间差
获取当前日期时间
使用对象获取年月日
DateTime转字符串
Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装。这其中的封装主要是日期和字符串之间的转换,以及提供对日期的定位。
对于Date对象,为了便捷,使用了一个DateTime类来代替之,继承自Date对象,主要的便利在于,覆盖了toString()方法,返回yyyy-MM-dd HH:mm:ss形式的字符串,方便在输出时的调用,提供了众多便捷的方法对日期对象操作。
获取当前时间
/**
* 获取当前时间
*/
@Test
public void DateUtil(){
//当前时间
Date date = ();
(date);
//当前时间
Date date2 = (());
(date2);
//当前时间
Date date3 = (());
(date3);
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = ();
(now);
//当前日期字符串,格式:yyyy-MM-dd
String today= ();
(today);
}
格式化日期输出
/**
* 格式化日期输出
*/
@Test
public void DateParse(){
String dateStr = "2022-04-19";
//2022-04-19 00:00:00
Date date = (dateStr);
(date);
//2022/04/19
String format = (date, "yyyy/MM/dd");
(format);
//2022-04-19
String formatDate = (date);
(formatDate);
//2022-04-19 00:00:00
String formatDateTime = (date);
(formatDateTime);
//00:00:00
String formatTime = (date);
(formatTime);
}
获取Date对象
/**
* 获取Date对象的某个部分
*/
@Test
public void DatePart(){
Date date = ();
((date));
//3 + 1
((date));
//APRIL 4月
((date));
}
开始和结束时间
/**
* 开始和结束时间
*/
@Test
public void beginOfDay(){
String dateStr = "2022-03-01 22:33:23";
Date date = (dateStr);
//一天的开始,结果:2022-03-01 00:00:00
Date beginOfDay = (date);
(beginOfDay);
//一天的结束,结果:2022-03-01 23:59:59
Date endOfDay = (date);
(endOfDay);
}
日期时间偏移
/**
* 日期时间偏移
* //昨天
* ()
* //明天
* ()
* //上周
* ()
* //下周
* ()
* //上个月
* ()
* //下个月
* ()
*/
@Test
public void offset(){
String dateStr = "2022-03-01 22:33:23";
//2022-03-01 22:33:23
Date date = (dateStr);
(date);
//2022-03-03 22:33:23
Date newDate = (date, DateField.DAY_OF_MONTH, 2);
(newDate);
//2022-03-04 22:33:23
DateTime newDate2 = (date, 3);
(newDate2);
//2022-03-01 19:33:23
DateTime newDate3 = (date, -3);
(newDate3);
}
日期时间差
/**
* 日期时间差
* 有时候我们需要计算两个日期之间的时间差(相差天数、相差小时数等等),Hutool将此类方法封装为between方法
*/
@Test
public void between(){
String dateStr1 = "2022-03-01 22:33:23";
Date date1 = (dateStr1);
String dateStr2 = "2022-04-01 23:33:23";
Date date2 = (dateStr2);
//相差一个月,31天
long betweenDay = (date1, date2, );
(betweenDay);
}
获取当前日期时间
/**
* 获取当前日期时间
*/
@Test
public void DateTime(){
Date date = new Date();
//new方式创建
DateTime time = new DateTime(date);
(time);
//of方式创建
DateTime now = ();
DateTime dt = (date);
(now);
(dt);
}
使用对象获取年月日
/**
* 使用对象
*/
@Test
public void DateTimeObject(){
DateTime dateTime = new DateTime("2022-04-18 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
int year = ();
(year);
int month = ()+1;
(month);
int day = ();
(day);
}
DateTime转字符串
@Test
public void dateStr(){
DateTime dateTime = new DateTime("2022-04-18 12:34:23", DatePattern.NORM_DATETIME_FORMAT);
String dateStr = ();
(dateStr);
}