静态方法:关于Java8中的日期时间API,你需要掌握这些!!

Java8之前的日期和时间API,存在一些问题,比如:线程安全的问题,跨年的问题等等。这些问题都在Hava8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大。立志成为架构师的你,必须掌握Java8中的日期和时间API。

本地时间和时间戳

主要方法:

  • now:静态方法,根据当前时间创建对象
  • of:静态方法,根据指定日期/时间创建对象
  • plusDays,plusWeeks,plusMonths,plusYears:向当前LocalDate 对象添加几天、几周、几个月、几年
  • minusDays,minusWeeks,minusMonths,minusYears:从当前LocalDate 对象减去几天、几周、几个月、几年
  • plus,minus:添加或减少一个Duration 或Period
  • withDayOfMonth,withDayOfYear,withMonth,withYear:将月份天数、年份天数、月份、年份修改为指定的值并返回新的LocalDate 对象
  • getDayOfYear:获得年份天数(1~366)
  • getDayOfWeek:获得星期几(返回一个DayOfWeek枚举值)
  • getMonth:获得月份, 返回一个Month 枚举值
  • getMonthValue:获得月份(1~12)
  • getYear:获得年份
  • until:获得两个日期之间的Period 对象,或者指定ChronoUnits 的数字
  • isBefore,isAfter:比较两个LocalDate
  • isLeapYear:判断是否是闰年

使用 LocalDate、 LocalTime、 LocalDateTime

LocalDate、 LocalTime、 LocalDateTime 类的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。

注: ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法

方法 描述 示例
now() 静态方法,根据当前时间创建对象 LocalDate localDate = LocalDate.now(); LocalTime localTime = LocalTime.now(); LocalDateTime localDateTime = LocalDateTime.now();
of() 静态方法,根据指定日期/时间创建 对象 LocalDate localDate = LocalDate.of(2016, 10, 26); LocalTime localTime = LocalTime.of(02, 22, 56); LocalDateTime localDateTime = LocalDateTime.of(2016, 10, 26, 12, 10, 55);
plusDays, plusWeeks, plusMonths, plusYears 向当前 LocalDate 对象添加几天、 几周、 几个月、 几年  
minusDays, minusWeeks, minusMonths, minusYears 从当前 LocalDate 对象减去几天、 几周、 几个月、 几年  
plus, minus 添加或减少一个 Duration 或 Period  
withDayOfMonth, withDayOfYear, withMonth, withYear 将月份天数、 年份天数、 月份、 年 份 修 改 为 指 定 的 值 并 返 回 新 的 LocalDate 对象  
getDayOfMonth 获得月份天数(1-31)  
getDayOfYear 获得年份天数(1-366)  
getDayOfWeek 获得星期几(返回一个 DayOfWeek 枚举值)  
getMonth 获得月份, 返回一个 Month 枚举值  
getMonthValue 获得月份(1-12)  
getYear 获得年份  
until 获得两个日期之间的 Period 对象, 或者指定 ChronoUnits 的数字  
isBefore, isAfter 比较两个 LocalDate  
isLeapYear 判断是否是闰年  

示例代码如下所示。

// 获取当前系统时间
LocalDateTime localDateTime1 = LocalDateTime.now();
System.out.println(localDateTime1);
// 运行结果:2019-10-27T13:49:09.483

// 指定日期时间
LocalDateTime localDateTime2 = LocalDateTime.of(2019, 10, 27, 13, 45,10);
System.out.println(localDateTime2);
// 运行结果:2019-10-27T13:45:10

LocalDateTime localDateTime3 = localDateTime1
        // 加三年
        .plusYears(3)
        // 减三个月
        .minusMonths(3);
System.out.println(localDateTime3);
// 运行结果:2022-07-27T13:49:09.483

System.out.println(localDateTime1.getYear());       // 运行结果:2019
System.out.println(localDateTime1.getMonthValue()); // 运行结果:10
System.out.println(localDateTime1.getDayOfMonth()); // 运行结果:27
System.out.println(localDateTime1.getHour());       // 运行结果:13
System.out.println(localDateTime1.getMinute());     // 运行结果:52
System.out.println(localDateTime1.getSecond());     // 运行结果
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值