TimeUnit用法,Date,MessageFormat 联合使用

来源:互联网 发布:药监局数据库 编辑:程序博客网 时间:2024/06/06 04:51

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
 
    }
}
什么时候使用TimeUnit:

假设前端有开始时间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);
}




 
原创粉丝点击