码迷,mamicode.com
首页 > 编程语言 > 详细

java8 日期api使用

时间:2020-03-17 21:04:40      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:localtime   时区   格式化输出   系统时区   先后   system   rom   显示日期   parse   

    java8以前对日期的处理不是很方便,想要对日期进行加减,比较两个日期的间隔处理非常繁琐,java8对日期重新实现了一套api,位于java.time包下。

    LocalDate  只显示日期

    LocalTime 只显示时间

    LocalDateTime 既包括日期又包括时间

    Instant  时间戳

    ZoneId  时区

1 用法:

   LocalDate ,LocalTime,LocalDateTime 这几个类的构造方法都是private,但他们都提供了静态的方法来实例化对象。

   1.1  of(int year, Month month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)

          of方法可以传入特定的值,构造特定的时间日期:

     LocalDate localDate= LocalDate.of(2012,3,2);
LocalTime localTime = LocalTime.of(13, 1, 11);
LocalDateTime localDateTime = LocalDateTime.of(2012, 3, 2,13,1,11);
System.out.println(localDate);
System.out.println(localTime);
System.out.println(localDateTime);

             2012-03-02
             13:01:11
             2012-03-02T13:01:11

    1.2 now()

           now方法获取系统的当前时间,默认为系统时区,提供了重载的方法now(ZoneId  )可以传入指定的时区

    1.3 parse()

          parse方法可以接受一个时间字符串,和一个格式化模式

2 运算

    2.1 每个类都提供了加(plus)减(minus)运算方法,可以很方便的计算前一天后一天

    2.2 每个类都提供了判断两个日期先后的方法isAfter,isBefore

    2.3 计算两个日期的间隔

    Duration between = Duration.between(localDateTime,localDateTime);

    2.4 格式化输出

         format可以可以接受一个DateTimeFormatter,以给定的格式化为一个字符串

   localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))

 

3 与Date的互相转化

      两者转化都是转化为对应的时间戳,通过时间戳去转化

    3.1 date 转LocalDate

  date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()

    3.2  LocalDate转date

   Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant())

   

   

 

java8 日期api使用

标签:localtime   时区   格式化输出   系统时区   先后   system   rom   显示日期   parse   

原文地址:https://www.cnblogs.com/fencuo/p/12513233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!