当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java TimeUnit Class用法及代码示例


TimeUnit是一个可用的枚举 java.util.concurrent. TimeUnit 顾名思义,处理时间单位。 TimeUnit 提供给定粒度单位的时间表示。它提供了跨时间单位转换时间的方法。 TimeUnit 对于了解如何解释给定时间(即应考虑哪个时间单位)很有用。持续时间之间的微小差异(例如以微秒和纳秒为单位)可以使用 TimeUnit 计算出来。它用于执行定时和延迟操作。

它支持纳秒、微秒、毫秒、秒、分钟、小时和天单位。对于这些单位,TimeUnit 指定相应的枚举常量:

  1. 纳秒:千分之一微秒
  2. 微秒:千分之一毫秒
  3. 毫秒:千分之一秒
  4. 秒数:一秒
  5. 分钟:六十秒
  6. 时间:六十分钟
  7. 天数:二十四小时

示例 1:

Java


// Java program to demonstrate TimeUnit Class
import java.util.concurrent.TimeUnit;
public class GFG {
    public static void main(String args[])
    {
        long hours = 96;
        // Convert given time (hours)in days
        long days = TimeUnit.DAYS.convert(hours, TimeUnit.HOURS);
        // Convert days in minutes
        long minutes = TimeUnit.MINUTES.convert(days, TimeUnit.DAYS);
        System.out.println(hours + " Hours = " + days
                           + " Days = " + +minutes
                           + " Minutes");
        // Convert given time (minutes) to microseconds
        long micros = TimeUnit.MINUTES.toMicros(minutes);
        System.out.println(minutes + " Minutes = " + micros
                           + " Microseconds");
        // Convert given time (microseconds) to seconds
        long seconds = TimeUnit.MICROSECONDS.toSeconds(micros);
        System.out.println(micros + " Microseconds = "
                           + seconds + " Seconds");
        // Create TimeUnit object of type Minutes
        TimeUnit time = TimeUnit.valueOf("MINUTES");
        System.out.println("TimeUnit object type: " + time);
    }
}
输出
96 Hours = 4 Days = 5760 Minutes
5760 Minutes = 345600000000 Microseconds
345600000000 Microseconds = 345600 Seconds
TimeUnit object type: MINUTES

示例 2:

Java


// Java program to demonstrate TimeUnit Class
import java.util.concurrent.TimeUnit;
public class GFG implements Runnable {
    public void run()
    {
        // Get array of TimeUnit enum constants using
        // values()
        for (TimeUnit unit : TimeUnit.values()) {
            try {
               
                // pause for 1 second
                TimeUnit.SECONDS.sleep(1);
            }
            catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(
                unit + " : "
                + unit.convert(24, TimeUnit.HOURS));
        }
    }
    public static void main(String args[])
    {
        GFG obj1 = new GFG();
        System.out.println("TimeUnit Example");
       
        // Create and start Thread
        Thread t1 = new Thread(obj1);
        t1.start();
       
        System.out.println("Now, thread will run for 5 seconds");
        try {
           
            // Specify Thread join time, here, 5 seconds
            TimeUnit.SECONDS.timedJoin(t1, 5);
        }
        catch (InterruptedException e) {
            e.printStackTrace();
        }
       
        System.out.println("Thread  Execution Paused");
        System.out.println("Resuming Thread Execution...");
    }
}
输出
TimeUnit Example
Now, thread will run for 5 seconds
NANOSECONDS : 86400000000000
MICROSECONDS : 86400000000
MILLISECONDS : 86400000
SECONDS : 86400
Thread  Execution Paused
Resuming Thread Execution...
MINUTES : 1440
HOURS : 24
DAYS : 1

TimeUnit 中可用的实用方法:

方法 说明
长convert() 将输入的持续时间及其单位转换为所需的单位。
长toDays() 将持续时间转换为天。
长toHours() 将持续时间转换为小时。
长toMicros() 将持续时间转换为微秒。
长toMillis() 将持续时间转换为毫秒。
长toMinutes() 将持续时间转换为分钟。
长toNanos() 将持续时间转换为纳秒。
长toSeconds() 将持续时间转换为秒。
静态TimeUnit valueOf() 返回具有指定名称的类型的枚举常量。
静态TimeUnit [] values() 返回包含枚举常量的数组。
无效sleep() 使用此时间单位执行Thread.sleep。暂停给定的 TimeUnit。
无效timedWait() 使用此时间单位执行定时Object.wait。等待给定的时间单位执行。
无效timedJoin() 使用此时间单位执行定时Thread.join。提供线程仅在给定的时间内完成工作。


相关用法


注:本文由纯净天空筛选整理自hemavatisabu大神的英文原创作品 TimeUnit Class in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。