當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。