JDK8的日期和时间的API

JDK8的日期和时间的API

public class JDK8DateTimeTest {
   /*
   LocalDate、LocalTime、LocalDateTime 的使用
   说明:
       1.LocalDateTime相较于LocalDate、LocalTime,使用频率要高
       2.类似于Calendar
    */
   @Test
   public void test1(){
       LocalDate localDate = LocalDate.now();
       LocalTime localTime = LocalTime.now();
       LocalDateTime localDateTime = LocalDateTime.now();

       System.out.println(localDate);//2022-02-21
       System.out.println(localTime);//21:13:46.404
       System.out.println(localDateTime);//2022-02-21T21:13:46.404

       //of():设置指定的年、月、日、时、分、秒。没有偏移量
       LocalDateTime dateTime = LocalDateTime.of(2021, 12, 4, 21, 56, 7);//2021-12-04T21:56:07
       System.out.println(dateTime);

       //getXxx():获取相关的属性
       System.out.println(dateTime.getDayOfMonth());//4
       System.out.println(dateTime.getDayOfWeek());//SATURDAY


       //体现了不可变性
       //withXxx():设置相关的属性
       LocalDate localDate1 = localDate.withDayOfMonth(18);
       System.out.println(localDate);//2022-02-21
       System.out.println(localDate1);//2022-02-18

       //plusXxx()
       LocalDateTime localDateTime1 = localDateTime.plusMonths(3);
       System.out.println(localDateTime);//2022-02-21T21:33:49.310
       System.out.println(localDateTime1);//2022-05-21T21:33:49.310

       LocalDateTime localDateTime2 = localDateTime.minusHours(5);
       System.out.println(localDateTime);//2022-02-21T21:34:43.310
       System.out.println(localDateTime2);//2022-02-21T16:34:43.310
  }

   /*
   Instant的使用:类似于java.util.Date类
    */
   @Test
   public void test2(){

       Instant instant = Instant.now();//now():获取本初子午线对应的标准时间
       System.out.println(instant);//2022-02-21T13:41:02.839Z 中时区的时间

       //添加时间的偏移量
       OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
       System.out.println(offsetDateTime);//2022-02-21T21:42:33.715+08:00

       //toEpochMilli():获取自1970年1月1日0时0分0秒(UFC)开始的毫秒数 --> Date类中的getTime()
       long milli = instant.toEpochMilli();
       System.out.println(milli);//1645451147741

       //ofEpochMilli():通过给定的毫秒数,获取Instant实例 --> new Date(Long millis)
       Instant instant1 = Instant.ofEpochMilli(1645451147741L);
       System.out.println(instant1);//2022-02-21T13:45:47.741Z
  }


   /*
   DateTimeFormatter:格式化或解析日期、时间
   类似于SimpleDateTime
    */
   @Test
   public void test3(){
       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
       //格式化
       String str = formatter.format(LocalDateTime.now());
       System.out.println(str);//2022-02-21 10:06:41

       //解析
       TemporalAccessor parse = formatter.parse("2022-02-21 10:06:41");
       System.out.println(parse);
  }
}
posted @   阳光真好的博客  阅读(163)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示