TimeUnit用法,Date,MessageFormat 联合使用

本文详细介绍了 Java 中 TimeUnit 类的使用方法,包括不同时间单位之间的转换示例,以及如何利用 TimeUnit 计算两个日期间的间隔。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

}














                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值