java8(四)—新日期类型

1.LocalDate: 日期

//获取实例
LocalDate localDate = LocalDate.now(); //获取系统当前日期:2020-10-19
LocalDate localDate1 = LocalDate.of(2020, 7, 19); //根据参数构造日期
//字符串个LocalDate的相互转换
LocalDate localDate = LocalDate.parse("2020-10-12", DateTimeFormatter.ofPattern("yyyy-MM-dd")); //根据字符串创建
localDate.format(DateTimeFormatter.BASIC_ISO_DATE); //LocalDate转为指定格式的字符串
//常用获取日期API
localDate.getYear(); //获取年份
localDate.getMonthValue(); //获取月份,数字表示
localDate.getMonth(); //获取月份, 英文表示
localDate.getDayOfYear(); //本年的第多少天
localDate.getDayOfMonth(); //本月第多少天
localDate.getDayOfWeek(); //周几
localDate.lengthOfYear(); //本年工多少天
localDate.lengthOfMonth(); //本月工多少天
localDate.isLeapYear(); //是否是闰年
localDate.get(ChronoField.MONTH_OF_YEAR);

//常用日期计算API
localDate.plusYears(1); //加一年
localDate.plusMonths(1); //加一月
localDate.plusDays(1); //加一天
localDate.plusWeeks(1); //加一周
localDate.plus(2, ChronoUnit.DAYS); //加2天
localDate.minusYears(1); //减一年
localDate.minusMonths(1); //减一月
localDate.minusDays(1); //减一天
localDate.minusWeeks(1); //减一周
localDate.minus(2, ChronoUnit.MONTHS); //减一月

2.日期的计算

final LocalDate localDate = LocalDate.now();
//所在月第一各周的周一
localDate.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY));
// 当前日期的下一个周一
localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
// 如果当前日期为周一,则返回当前日期,否则返回下一个周一
localDate.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY));
//返回当前日期的上一个周一
localDate.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));

3.LocalTime: 时间

//获取实例
LocalTime localTime = LocalTime.now(); //22:17:46.145
LocalTime.of(22, 20, 36);
LocalTime.parse("13:45:29");
//获取时间
localTime.getHour(); //获取小时
localTime.getMinute(); //获取分钟
localTime.getSecond(); //获取秒

4.LocalDateTime: 日期时间

//获取实例
LocalDateTime dateTime = LocalDateTime.now(); //2020-10-19T23:08:36.563
LocalDateTime.of(2020,10,6,10,12,30);
//获取日期时间
dateTime.getDayOfWeek();
dateTime.get(ChronoField.DAY_OF_YEAR);
dateTime.plus(1, ChronoUnit.DAYS);
dateTime.minus(1, ChronoUnit.MONTHS);

5.日期格式化

localDate.format(DateTimeFormatter.ofPattern("yyyy/MM/dd")); //使用字符串匹配格式化日期
localDate12.format(DateTimeFormatter.BASIC_ISO_DATE);   //使用字符串匹配格式化日期 yyyyMMdd
localDate12.format(DateTimeFormatter.BASIC_ISO_DATE);    //使用字符串匹配格式化日期 yyyy-MM-dd

6.Duration,Period

//时间差值的计算, Period主要针对日期计算(支持年/月/日),而Duration主要针对时间的计算(支持秒/纳秒)
Period period = Period.between(LocalDate.of(2020, 10, 1), LocalDate.now());
System.out.println(period.getDays());
Duration duration = Duration.between(LocalTime.of(10, 10, 1), LocalTime.now());
System.out.println(duration.getSeconds());

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值