// 天 TimeUnit.DAYS; // 小时 TimeUnit.HOURS; // 分钟 TimeUnit.MINUTES; // 秒 TimeUnit.SECONDS; // 毫秒 TimeUnit.MILLISECONDS;常用转换方法
public long convert(long sourceDuration, TimeUnit sourceUnit); public long toNanos(long duration); public long toMicros(long duration); public long toMillis(long duration); public long toSeconds(long duration); public long toMinutes(long duration); public long toHours(long duration); public long toDays(long duration);当前时间转换
long currentTime = System.currentTimeMillis();
// 当前时间转换为天
long day = TimeUnit.MILLISECONDS.toDays(currentTime);
// 当前小时数 - 天数转换小时数 得今天的小时数;天的起点是以8点开始
long hour = TimeUnit.MILLISECONDS.toHours(currentTime) - TimeUnit.DAYS.toHours(day);
// 当前分钟数 - 小时数转换的分钟数 得这个小时的分钟数
long minute = TimeUnit.MILLISECONDS.toMinutes(currentTime) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(currentTime));
// 当前秒数 - 分钟数转换的秒数 得这个分钟的秒数
long second = TimeUnit.MILLISECONDS.toSeconds(currentTime) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(currentTime));
System.out.println(String.format("%s天 %s时 %s分 %s秒", day, hour, minute, second));
运行结果
同一时间只能控制一个线程
Thread thread = new Thread(() -> {
System.out.println("线程开始执行...");
try {
// 等待5s
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
return;
}
System.out.println("线程执行完成...");
});
thread.start();
// 2秒超时
TimeUnit.SECONDS.timedJoin(thread, 2);
if(thread.isAlive()) {
System.out.println("超时中断");
// 中断线程
thread.interrupt();
}
运行结果



