`

TimeUnit用法

 
阅读更多

TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段

1、主要作用

时间颗粒度转换

延时

2、常用的颗粒度

TimeUnit.DAYS          //天  
TimeUnit.HOURS         //小时  
TimeUnit.MINUTES       //分钟  
TimeUnit.SECONDS       //秒  
TimeUnit.MILLISECONDS  //毫秒 
TimeUnit.NANOSECONDS   //毫微秒
TimeUnit.MICROSECONDS  //微秒

3、时间颗粒度转换

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)     //转化天 

实例:

package com.app;  
  
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   
  
    }  
}  

4、延时

(1)一般的写法

package com.app;  
  
public class Test2 {  
  
    public static void main(String[] args) {  
  
        new Thread( new Runnable() {  
  
            @Override  
            public void run() {  
                try {  
                    Thread.sleep( 5 * 1000 );  
                    System.out.println( "延时完成了");  
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
            }  
        }).start();  ;  
    }  
      
} 

(2)TimeUnit 写法

package com.app;  
  
import java.util.concurrent.TimeUnit;  
  
public class Test2 {  
  
    public static void main(String[] args) {  
  
        new Thread( new Runnable() {  
  
            @Override  
            public void run() {  
                try {  
                    TimeUnit.SECONDS.sleep( 5 );  
                    System.out.println( "延时5秒,完成了");  
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
            }  
        }).start();  ;  
    }  
      
} 

5、常用时间段

    /** 
     * 无固定期限 
     */  
    NONE(0, "无固定期限")  
      
    /** 
     * 1秒钟 
     */  
    ,ONE_SEC(1, "1秒钟")  
  
    /** 
     * 5秒钟 
     */  
    ,FIVE_SEC(5, "5秒钟")  
  
    /** 
     * 10秒钟 
     */  
    ,TEN_SEC(10, "10秒钟")  
  
    /** 
     * 30秒钟 
     */  
    ,HALF_A_MIN(30, "30秒钟")  
  
    /** 
     * 1分钟 
     */  
    ,ONE_MIN(60, "1分钟")  
  
    /** 
     * 5分钟 
     */  
    ,FIVE_MIN(5 * 60, "5分钟")  
  
    /** 
     * 10分钟 
     */  
    ,TEN_MIN(10 * 60, "10分钟")  
      
    /** 
     * 20分钟 
     */  
    ,TWENTY_MIN(20 * 60, "20分钟")  
  
    /** 
     * 30分钟 
     */  
    ,HALF_AN_HOUR(30 * 60, "30分钟")  
  
    /** 
     * 1小时 
     */  
    ,ONE_HOUR(60 * 60, "1小时")  
  
    /** 
     * 1天 
     */  
    ,ONE_DAY(24 * 60 * 60, "1天")  
  
    /** 
     * 1个月 
     */  
    ,ONE_MON(30 * 24 * 60 * 60, "1个月")  
  
    /** 
     * 1年 
     */  
    ,ONE_YEAR(365 * 24 * 60 * 60, "1年")  
分享到:
评论

相关推荐

    用JAVA做两个给定时间的天数差

    以下将详细介绍如何使用这些方法来计算日期之间的天数差。 1. **使用`java.util.Date`和`java.util.Calendar`** 在Java 8之前,`Date`和`Calendar`是处理日期的主要类。首先,我们需要创建两个`Date`对象表示输入...

    Rxjava功能操作符的使用方法详解

    Rxjava功能操作符的使用方法详解 Rxjava是一个非常强大的Reactive Extensions库,提供了多种功能操作符来处理异步数据。下面我们将逐一介绍Rxjava功能操作符的使用方法详解。 一、Rxjava的基本概念 在Rxjava中,...

    oKHttp基本用法

    以上就是 OkHttp 的基本用法,包括 GET 和 POST 请求的同步与异步执行,以及上传键值对、JSON 数据和文件的方法。在实际项目中,你还可以根据需要进行更复杂的配置,例如设置自签名证书、HTTPS 代理等。了解并熟练...

    java 文件实时监听watchService

    当不再需要监听时,使用`close()`方法关闭`WatchService`,释放资源。 在示例中,程序会持续运行并每3秒检查一次`WatchKey`,直到检测到目标文件(1.txt)的事件。当目标文件被删除时,程序会打印一条消息并继续...

    第四节(Lock关键字用法)

    在深入理解`Lock`关键字的用法之前,我们先来了解一些多线程的基础知识。 多线程是现代计算机程序设计中的一个关键特性,它允许程序同时执行多个任务,从而提高资源利用率和程序性能。在Java中,创建和管理线程主要...

    Android OKHttp3拦截器的使用方法

    本文介绍了Android OKHttp3拦截器的使用方法,分享给大家,具体如下: 添加Interceptor 在上一篇中我们已经知道了okhttp的基本使用,其中在介绍OkHttpClient初始化的时候,介绍了两种方式,第二种方式就可以对这个...

    计算日期差

    - `TimeUnit`方法:使用`TimeUnit.between`方法可以直接计算两个日期间的差值,单位可以是天、小时等。例如: ```java long diffInMilliseconds = Math.abs(date2.getTime() - date1.getTime()); long daysDiff ...

    仅使用TextView高仿京东淘宝各种APP活动倒计时样式Demo

    本Demo旨在教你如何仅使用TextView这一基本组件,实现类似京东、淘宝等电商平台的高仿倒计时效果。 首先,倒计时功能的实现通常涉及到`CountDownTimer`类,这是Android SDK提供的一种定时器工具,适用于执行一系列...

    Java线程池.docx

    Java线程池 Java线程池是Java语言中的一种高级多线程处理机制,用于避免重复创建和销毁线程而导致额外的性能开销。Java线程池功能可以实现...在上面的示例代码中,我们使用了scheduleAtFixedRate方法来执行定时任务。

    Java Exchanger并发类使用方法

    Java Exchanger并发类使用方法 Java Exchanger是Java 5引入的并发类,用来实现两个线程之间的对象交换。Exchanger顾名思义,就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用...

    测试时间的算法

    在进行性能测试时,我们通常会使用`java.util.concurrent.TimeUnit`类,它提供了在不同时间单位之间转换的方法。通过结合`System.nanoTime()`和`TimeUnit`,我们可以更方便地计算出时间间隔,并将其转换为更易于理解...

    Spring使用timer定时器-能精确几点运行定时任务

    // 创建一个方法来启动定时任务 public void startTimerTask(LocalDateTime scheduledTime, int period, TimeUnit timeUnit) { // 获取TimerTask Bean MyTimerTask task = context.getBean(MyTimerTask.class); ...

    java 记录程序执行的时间

    首先,我们可以使用`System.currentTimeMillis()`方法来获取当前时间(单位为毫秒)作为基准点,然后在程序执行完毕后再获取一次时间,通过两者之差即可计算出程序的运行时间。例如: ```java long startTime = ...

    仅使用TextView高仿京东淘宝各种APP活动倒计时样式

    在`onTick()`方法中,更新TextView的文本。 ```java new CountDownTimer(86400000, 1000) { // 一天的毫秒数,每秒更新一次 @Override public void onTick(long millisUntilFinished) { String timeFormat = ...

    CyclicBarrier用法.docx

    - `await(long timeout, TimeUnit unit)`:与`await()`类似,但增加了超时机制,如果在指定时间内其他线程未到达屏障,当前线程将返回并抛出`BrokenBarrierException`。 - `reset()`:手动重置屏障,使得所有等待...

    java中redis锁的封装

    使用方法: Object result = redisLockTemplate.execute("REDIS:LOCK:" + id, 1, TimeUnit.SECONDS, new Callback() { @Override public Object onGetLock() throws InterruptedException { //拿到锁,进行处理,...

    Android中okhttp的基本用法2(okHttp的简单封装)

    本篇文章将详细介绍OkHttp的基础使用方法以及一个简单的封装示例。 首先,了解OkHttp的核心概念: 1. **OkHttpClient**:OkHttp的客户端对象,它是整个网络请求的入口点。通过配置不同的拦截器(Interceptor)、...

    java Future 接口使用方法详解

    下面我们将详细探讨`Future`接口的使用方法。 1. **接口方法解析** - `boolean cancel(boolean mayInterruptIfRunning)`:用于取消任务的执行。如果`mayInterruptIfRunning`为`true`,则尝试中断正在执行的任务;...

    关于RxJava的一些特殊用法小结

    **第一种方法** 使用`Observable.create()`和`Schedulers.newThread().createWorker().schedulePeriodically()`: ```java Observable.create(new Observable.OnSubscribe() { @Override public void call...

Global site tag (gtag.js) - Google Analytics