0
点赞
收藏
分享

微信扫一扫

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 接口类型。
这个接口定义了对时间对象的读写访问。
实现了此接口的类有很多,如下:
java日期对象 LocalDate_类方法

 参数二:是一个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 是一个接口,实现此接口的类如下:
java日期对象 LocalDate_当前日期_02 

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


举报

相关推荐

0 条评论