JDK8新增日期类

概述

从Java 8开始,java.time包提供了新的日期和时间API,主要涉及的类型有:

LocalDate:不包含具体时间的日期。
LocalTime:不含日期的时间。
LocalDateTime:包含了日期及时间。
Instant:代表的是时间戳。
DateTimeFormatter 用于做时间的格式化和解析的
Duration:用于计算两个“时间”间隔
Period:用于计算两个“日期”间隔
新增的API严格区分了时刻、本地日期、本地时间,并且,对日期和时间进行运算更加方便。

其次,新API的类型几乎全部是不变类型(和String的使用类似),可以放心使用不必担心被修改。

LocalDate、LocalTime、LocalDateTime

他们 分别表示日期,时间,日期时间对象,他们的类的实例是不可变的对象。
他们三者构建对象和API都是通用的
构建对象的方式如下:

方法名

说明

public static Xxxx now();

静态方法,根据当前时间创建对象

LocaDate localDate = LocalDate.now();

LocalTime llocalTime = LocalTime.now();

LocalDateTime localDateTime = LocalDateTime.now();

public static Xxxx of(…);

静态方法,指定日期/时间创建对象

LocalDate localDate1 = LocalDate.of(2099 , 11,11);

LocalTime localTime1 = LocalTime.of(11, 11, 11);

LocalDateTime localDateTime1 =

LocalDateTime.of(2020, 10, 6, 13, 23, 43);

    public void test() {
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate);
        LocalDate date = localDate.of(2088, 2, 14);
        System.out.println(date);
 
 
    }


 LocalDate、LocalTime、LocalDateTime获取信息的API:

方法名

说明

public int geYear()

获取年

public int getMonthValue()

获取月份(1-12)

Public int getDayOfMonth()

获取月中第几天

Public int getDayOfYear()

获取年中第几天

Public DayOfWeek getDayOfWeek()

获取星期

    public void test() {
        LocalDateTime dateTime = LocalDateTime.now();
 
        System.out.println("时间:"+dateTime);
        System.out.println("获取年:"+dateTime.getYear());
        System.out.println("获取月:"+dateTime.getMonthValue());
        System.out.println("获取日:"+dateTime.getDayOfMonth());
        System.out.println("一年中的第几天:"+dateTime.getDayOfYear());
        System.out.println("获取星期:"+dateTime.getDayOfWeek().getValue());
 
 
 
 
    }


转换相关的API:

 LocalDateTime的转换API

方法名

说明

public LocalDate toLocalDate()

转换成一个LocalDate对象

public LocalTime toLocalTime()

转换成一个LocalTime对象

    public void test() {
        LocalDateTime dateTime = LocalDateTime.now();
 
        System.out.println("时间:"+dateTime);
        LocalDate date = dateTime.toLocalDate();
        System.out.println("LocalDateTime 转为 LocalDate:"+date);
 
 
    }


 修改相关的API

LocalDateTime 综合了 LocalDate 和 LocalTime 里面的方法,所以下面只用 LocalDate 和 LocalTime 来举例。
这些方法返回的是一个新的实例引用,因为LocalDateTime 、LocalDate 、LocalTime 都是不可变的。
方法名

说明

plusDays, plusWeeks, plusMonths, plusYears

向当前 LocalDate 对象添加几天、 

几周、几个月、几年

minusDays, minusWeeks, minusMonths, minusYears 

从当前 LocalDate 对象减去几天、 

几周、几个月、几年 

withDayOfMonth, withDayOfYear, withMonth, withYear 

将月份天数、年份天数、月份、

年 份 修 改 为 指 定 的 值 

并 返 回 新 的 LocalDate 对象 

isBefore, isAfter 

比较两个 LocalDate 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值