java日期对象 LocalDate

 java8新API

LocalDate

LocalDate和LocalDateTime在实际开发中很常用,因为实体类中往往会存在日期时间字段。
 

类方法:

1、LocalDate.now()

获取当前时间,返回的是LoCalDate实例,不是一个字符串!!!

public static void main(String[] args) {
    // 默认根据当前操作系统获取日期,也可以指定一个TimeZone类型的参数
    LocalDate localDate = LocalDate.now();
    System.out.println(localDate);// 2021-07-09
}

2、LocalDate.parse("2021-10-21")

传入一个字符串,获取LoCalDate实例

LocalDate.parse("2021-10-21")


实例方法

0、localDate.toString()

把日期转化为String类型

// 传一个字符串,返回LocalDate实例
LocalDate localDate = LocalDate.parse("2021-10-21");
System.out.println(localDate.toString()); // "2021-10-21"

1、localDate.getDayOfMoth()、localDate.getDayOfYear()、localDate.getMothValue()

 获取当前天数在一年、一个月中是第几天:

public static void main(String[] args) {
    // 默认根据当前操作系统获取日期
    LocalDate now = LocalDate.now();
    // 获取当前天数在一个月中是第几天
    System.out.println(now.getDayOfMonth());
    // 获取当前天数在一年中是第几天
    System.out.println(now.getDayOfYear());
    // 获取当前的月份
    System.out.println(now.getMonthValue());
}

2、localDate.lengthOfMonth()、localDate.lengthOfYear()、localDate.isLeapYear()

 获取当前月的天数、当前年的天数、判断是否闰年:

public static void main(String[] args) {
    // 默认根据当前操作系统获取日期
    LocalDate now = LocalDate.now();
    // 获取当前月的天数
    System.out.println(now.lengthOfMonth()); // 31
    // 获取当前年的天数 
    System.out.println(now.lengthOfYear()); // 365
    // 获取当前日期所在年是否是闰年
    System.out.println(now.isLeapYear()); // false
}

3、localDate.minusDays()

 当前时间向前减多少天、多少月、多少周、多少年:

public static void main(String[] args) {
    // 默认根据当前操作系统获取日期
    LocalDate now = LocalDate.now(); // 2021-07-09
    // 以下都是相对于当前时间:============
    // 获取前一天的年月日
    LocalDate t = now.minusDays(1);
    System.out.println(t); // 2021-07-08
    // 获取上一个月的 年月日(当前日期减一个月)
    System.out.println(now.minusMonths(1)); //2021-06-09
    // 获取上一个周的年月日(当前日期减一个周)
    System.out.println(now.minusWeeks(1)); //2021-07-02
    // 获取上一年的年月日(当前日期减一年)
    System.out.println(now.minusYears(1)); //2020-07-09
}

4、localDate.plusMonths()

 当前时间向后加多少天:

public static void main(String[] args) {
    // 默认根据当前操作系统获取日期
    LocalDate now = LocalDate.now(); // 2021-07-09
    // 以下都是相对于当前时间:============
    // 获取下一个月的 年月日(当前日期加一个月)
    System.out.println(now.plusMonths(1)); //2021-08-09
    // 获取下一个周的年月日(当前日期加一个周)
    System.out.println(now.plusWeeks(1)); //2021-07-16
    // 获取下一年的年月日(当前日期加一年)
    System.out.println(now.plusYears(1)); //2022-07-09
}

5、localDate.until ( Temporal endExclusive,  TemporalUnit unit )

返回值:long类型。

也可以传一个参数,返回的是:  Period 实例,使用 Period 类方法也可以计算,项目用到在记录。

计算给定时间与另一个日期的时间量(这个量就是一个单位,根据参数二决定,如:设置秒,就是两个时间差值的秒数是多少,设置天,就是两个时间插值的天数是多少)。

public static void main(String[] args) {
    LocalDate localDate = LocalDate.now();
    LocalDate localDateEnd = LocalDate.parse("2022-12-02");
    System.out.println(localDate.until(localDateEnd, ChronoUnit.DAYS));
}

参数一:interface  Temporal 接口类型。
这个接口定义了对时间对象的读写访问。
实现了此接口的类有很多,如下:

 参数二:是一个Interface  TemporalUnit 接口类型的。

Interface TemporalUnit 是一个接口类。
这个接口定义了表示日期时间的单位,例如:年、月、天、半天、小时、分钟、秒、微妙,实现这些接口需要表示这些单元。
而 ChronoUnit 枚举类就实现了上边 TemporalUtil接口方法:

ChronoUnit 枚举类的常用枚举:
(1)SECONDS("Seconds", Duration.ofSeconds(1))  秒
(2)MINUTES("Minutes", Duration.ofSeconds(60)) 分钟

(3)HOURS("Hours", Duration.ofSeconds(3600)) 小时

(4)HALF_DAYS("HalfDays", Duration.ofSeconds(43200))  半天

(5)DAYS("Days", Duration.ofSeconds(86400))   一天

(6)WEEKS("Weeks", Duration.ofSeconds(7 * 86400L))  一周

(7)MONTHS("Months", Duration.ofSeconds(31556952L / 12)) 一个月
(8)YEARS("Years", Duration.ofSeconds(31556952L))  一年


6、localDate.isBefore( ChronoLocalDate other ) 与之对应的是 isAfter()

返回boolean值。

检查一个日期是否在给定日期之前。
参数:interface ChronoLocalDate 是一个接口,实现此接口的类如下:
 

public static void main(String[] args) {
    LocalDate localDate = LocalDate.now();
    LocalDate p = LocalDate.parse("2021-10-27");
    // 当前日期(2021-07-27)是否在 "2021-10-27"之前
    System.out.println(localDate.isBefore(p)); // true
}

7、localDate.equals(Object obj)

返回值:boolean类型。

检查此日期是否跟指定的日期相等。

public static void main(String[] args) {
    LocalDate localDate = LocalDate.now();
    LocalDate p = LocalDate.parse("2021-07-27");
    System.out.println(localDate.equals(p)); // true
}

LocalDateTime

包含日期和时间,方法与LocalDate 一样。

public static void main(String[] args) {
    // 默认根据当前操作系统获取日期
    LocalDateTime now = LocalDateTime.now();
    System.out.println(now); // 2021-07-09T11:35:44.901717300
    // 格式化时间 - 线程安全的
    DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
    System.out.println(df.format(now)); //2021-07-09 11:39:27
}

JDBC的映射

LocalDate 对应 date

LocalDateTime 对应 timestamp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值