TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段。java
经常使用的颗粒度
TimeUnit.DAYS //天 TimeUnit.HOURS //小时 TimeUnit.MINUTES //分钟 TimeUnit.SECONDS //秒 TimeUnit.MILLISECONDS //毫秒
1.颗粒度转换
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) //转化天
import java.util.concurrent.TimeUnit; public class TimeUnitTest { public static void main(String[] args) { //convert 1 day to 24 hour System.out.println(TimeUnit.DAYS.toHours(1)); //convert 1 hour to 60*60 second. System.out.println(TimeUnit.HOURS.toSeconds(1)); //convert 3 days to 72 hours. System.out.println(TimeUnit.HOURS.convert(3, TimeUnit.DAYS)); } }
2.延时,可替代Thread.sleep()。
import java.util.concurrent.TimeUnit; public class ThreadSleep { public static void main(String[] args) { Thread t = new Thread(new Runnable() { private int count = 0; @Override public void run() { for (int i = 0; i < 10; i++) { try { // Thread.sleep(500); //sleep 单位是毫秒 TimeUnit.SECONDS.sleep(1); // 单位能够自定义,more convinent } catch (InterruptedException e) { e.printStackTrace(); } count++; System.out.println(count); } } }); t.start(); } }