TimeUnit 一般使用方法:
常用的颗粒度
1
2
3
4
5
|
TimeUnit.DAYS //天 TimeUnit.HOURS //小时 TimeUnit.MINUTES //分钟 TimeUnit.SECONDS //秒 TimeUnit.MILLISECONDS //毫秒 |
1、时间颗粒度转换
1
2
3
4
5
|
public long toMillis( long d) //转化成毫秒 public long toSeconds( long d) //转化成秒 public long toMinutes( long d) //转化成分钟 public long toHours( long d) //转化成小时 public long toDays( long d) //转化天 |
例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import java.util.concurrent.TimeUnit; public class Test
{ public static void main(String[]
args) { //1天有24个小时
1代表1天:将1天转化为小时 System.out.println(
TimeUnit.DAYS.toHours( 1 )
); //结果:
24 //1小时有3600秒 System.out.println(
TimeUnit.HOURS.toSeconds( 1 )); //结果3600 //把3天转化成小时 System.out.println(
TimeUnit.HOURS.convert( 3 ,
TimeUnit.DAYS ) ); //结果是:72 } } |
假设前端有开始时间startDate,结束时间endDate 都使用字符串来存储
/**
日期工具类
*/
public class DateUtil{
private static final String YYYYMMDDHHMMSS="yyyy-MM-dd HH:mm:ss";
public static Date parse(String dateStr,String pattern){
SimpleDateFormat df = new SimpleDateFormat(pattern);
return df.parse(dateStr);
}
}
public class Test{
private static final String useDescRegex="{0,date,yyyy.MM.dd}-{1,date,yyyy.MM.dd}";
String startDateStr=request.getParameter("startDateStr");
String endDateStr=request.getParameter("endDateStr");
Date startDate=DateUtil.parse(startDateStr,DateUtil.YYYYMMDDHHMMSS);
Date endDate=DateUtil.parse(endDateStr,DateUtil.YYYYMMDDHHMMSS);
如何计算开始时间和结束时间相隔几天
long diff=TimeUnit.MILLISECONDS.toDays(endDate.getTime()-startDate.getTime());
如何计算开始时间和结束时间相隔 几个小时
long diff=TimeUnit.MILLISECONDS.toHours(endDate.getTime()-startDate.getTime());
//对日期格式话
String showDesc=MessageFormat.format(useDescRegex,startDate,endDate);
}