JUC——TimeUnit工具类(二)

TimeUnit工具类

在java.util.concurrent开发包里面提供有一个TimeUnit类,这个类单独看它的描述是一个时间单元类。该类是一个枚举类,这也是juc开包里面唯一的一个枚举类。

public  enum TimeUnit extends Enum<TimeUnit>

这个类之中支持有:日(DAYS)、时(HOURS)、分(MINUTS)、秒(SECONDS)、毫秒(MILLISECONDS)、微秒(MICROSECONDS)、纳秒(NANOSECONDS).

范例:进行休眠控制,休眠2秒

  • 使用Thread.sleep() 方法处理

    package so.strong.concurrents;
    public class StrongDemo {
        public static void main(String[] args) throws Exception{
            System.out.println("[sleep start]"+System.currentTimeMillis());
            Thread.sleep(2*1000);
            System.out.println("[sleep end]"+System.currentTimeMillis());
        }
    }
  • 直接使用TimeUnit类来处理

    package so.strong.concurrents;
    import java.util.concurrent.TimeUnit;
    public class StrongDemo {
        public static void main(String[] args) throws Exception{
            System.out.println("[sleep start]"+System.currentTimeMillis());
            TimeUnit.SECONDS.sleep(2);
            System.out.println("[sleep end]"+System.currentTimeMillis());
        }
    }

发现TimeUnit可以实现更加精确的时间处理操作。除了这一功能之外,在TimeUnit里面最为重要的特点是可以方便的进行各种时间单位的转换,它提供了一个convert()方法

// sourceDuration long类型时间数字
// sourceUnit 目标的转换类型
public long convert(long sourceDuration,TimeUnit sourceUnit) 

范例:转换一小时为毫秒

package so.strong.concurrents;
import java.util.concurrent.TimeUnit;
public class StrongDemo {
    public static void main(String[] args) throws Exception{
        long time = TimeUnit.MILLISECONDS.convert(1,TimeUnit.HOURS);
        System.out.println("1小时转为毫秒:"+time);
    }
}

范例:3天后的日期

package so.strong.concurrents;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class StrongDemo {
    public static void main(String[] args) throws Exception {
        long time = TimeUnit.MILLISECONDS.convert(3, TimeUnit.DAYS);
        System.out.println("3天转为毫秒:" + time);
        long threeTime = System.currentTimeMillis() + time; //当前时间的毫秒数+3天后的毫秒数
        System.out.println("3天后的日期:" + new Date(threeTime));
        System.out.println("3天后的日期:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(threeTime)));
    }
}

原文地址:https://www.cnblogs.com/itermis/p/8929765.html

时间: 2024-08-29 03:13:42

JUC——TimeUnit工具类(二)的相关文章

Unity+NGUI打造网络图片异步加载与本地缓存工具类(二)

接上文,我们的工具类中的主要方法: public  void SetAsyncImage(string url,UITexture texture) 按照前文分析的图片加载步骤来 public void SetAsyncImage(string url,UITexture texture){ //开始下载图片前,将UITexture的主图片设置为占位图 texture.mainTexture = placeholder; //判断是否是第一次加载这张图片 if (!File.Exists (pa

轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象

上一篇文章中,简单分享一下封装HttpClient工具类的思路及部分代码,本文将分享如何实现插件式配置HttpClient对象. 如果你看过我前面的几篇关于HttpClient的文章或者官网示例,应该都知道HttpClient对象在创建时,都可以设置各种参数,但是却没有简单的进行封装,比如对我来说比较重要的3个:代理.ssl(包含绕过证书验证和自定义证书验证).超时.还需要自己写.所以这里我就简单封装了一下,顺便还封装了一个连接池的配置. 其实说是插件式配置,那是高大上的说法,说白了,就是采用了

Java学习笔记49(DBUtils工具类二)

上一篇文章是我们自己模拟的DBUtils工具类,其实有开发好的工具类 这里使用commons-dbutils-1.6.jar 事务的简单介绍: 在数据库中应用事务处理案例:转账案例 张三和李四都有有自己的存款 主键 帐户名 余额 1 张三 1000 2 李四 10 要从张三的账户余额中转账800到李四账户 SQL语句实现: update xx set 余额 = 余额-800 where 主键=1 update xx set 余额 = 余额+800 where 主键=2 虽然操作成功,但是会出现问

JDK1.8 LocalDate 使用方式;LocalDate 封装Util,LocalDate工具类(二)

未完待续 ........ java.time.*代替方案 1.Instant 代替 Date2.LocalDateTime 代替 Calendar3.DateTimeFormatter 代替 SimpleDateFormat 一.获取当前日期是星期几/获取任意时间是星期几/获取当前日期是星期几/获取任意时间是星期几 二.获取星期几对应的数字 三.获取今天的最早时间 四.获取本月的最早时间 五.获取今年的最早时间 六.获取今天的最晚时间 七.获取本月的最晚时间 八.获取今年的最晚时间 九.获取今

一个简单的Java模板工具类(二)—简单表达式解析实现

以前写过一个, 用正则比较不高效, 所以用表达式解析方式又实现了一个, 练手. 以前的: http://my.oschina.net/haogrgr/blog/222349 现在的: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; /**  * 非常非常简单的模板实现  *   * @author desheng.tu  * @date 2015年

并发编程常用工具类(二) SymaPhore实现线程池

1.symaPhore简介 symaphore(信号量)用来控制同时访问某个资源的线程数量,一般用在并发流量控制.个人对它的理解相当于是接待室每次只能接待固定数量的人,当达到最高接待数的时候,其他人就会被拦截在外等待,当前面接待完走出接待室,才会继续接待下面的人. 2.symaphore使用 symaphore有两个构造方法:构造方法Semaphore(int permits)接受一个int参数,表示可用的许可证数量,内部默认创建一个非公平锁:构造方法Semaphore(int permits,

图片压缩java工具类

package com.net.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import org

使用POI导出Word(含表格)的实现方式及操作Word的工具类

转载请注明出处:https://www.cnblogs.com/sun-flower1314/p/10128796.html 本篇是关于利用Apache 的POI导出Word的实现步骤.采用XWPFDocument导出Word,结构和样式完全由代码控制,操作起来还是非常的不太方便,只能够创建简单的word,不能设置样式,功能太少.但在这里还是实现一下,毕竟做过. 首先声明一些基本概念: XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档 XWPFPa

juc下的并发工具类和线程池

工具类 CountDownLatch 利用它可以实现类似计数器的功能.比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了. package com.yjc.juc; import java.util.concurrent.CountDownLatch; public class CountDownLatchDemo { public static void main(String[] args) throws Interrupt