local.china java_记录Java8的LocalDate等时间类的使用

1. LocalDate

1.1 初始化

LocalDate today = LocalDate.now();//获取当前日期 年月日

System.out.println(today);// yyyy-MM-dd 2020-05-29

LocalDate d0 = LocalDate.of(2020, 5, 30);// 年 月 日

System.out.println(d0);// yyyy-MM-dd 2020-05-30(这里的月不用从0开始哦)

LocalDate d1 = LocalDate.parse("2020-05-28");// 一定要yyyy-MM-dd格式的

System.out.println(d1);// 2020-05-28

1.2 使用

// 判断当天是否是本月最后一天

LocalDate d0 = LocalDate.of(2020, 5, 31);// 2020-05-31 月底(本月最后一天)

System.out.println(d0.getDayOfMonth());// 31 该对象的日期是这个月第几天

System.out.println(d0.lengthOfMonth());// 31 这个月有几天

System.out.println(d0.getDayOfMonth() == d0.lengthOfMonth());// true 是否是月底最后一天

// 日期先后判断

LocalDate d3 = LocalDate.parse("2020-05-01");// 开始日期

LocalDate d4 = LocalDate.parse("2020-05-15");// 中间日期

LocalDate d5 = LocalDate.parse("2020-05-31");// 结束日期

// 判断d4在d3和d5中间(d3 <= d4 && d4 <= d5)

// PS. 因为不能判断小于等于,所以这里用这种方式进行判断,如果有更好的办法,请告诉我,谢谢

System.out.println((d3.isBefore(d4) || d3.isEqual(d4)) && (d4.isBefore(d5) || d4.isEqual(d5)));

// 获取本月

System.out.println(LocalDate.now().getMonth().getValue());// 6

// 获取本年

System.out.println(LocalDate.now().getYear());// 2020

// 获取上一年

System.out.println(LocalDate.now().minusYears(1).getYear());// 2019

// 获取精确到月的当前日期字符串

String currMon = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));

System.out.println(currMon);// 2020-06

// 获取上个月日期

LocalDate lastMonDate = LocalDate.now().minusMonths(1);// 减去一个月

System.out.println(lastMonDate);

2. LocalTime

2.1 初始化

LocalTime t0 = LocalTime.now();// 获取当前时间(精确到毫秒)

System.out.println(t0);// 11:59:59.123

2.2 使用

LocalTime t0 = LocalTime.now();// 获取当前时间(精确到毫秒)

System.out.println(t0);// 11:59:59.123

LocalTime t1 = t0.withNano(0);// 获取当前时间(精确到秒 其实就是把毫秒替换成0了)

System.out.println(t1);// 11:59:59

3. LocalDateTime

3.1 初始化

// 从特定格式解析成对象

String str = "2020-06-12 10:59";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");

LocalDateTime dateTime = LocalDateTime.parse(str, formatter);// 2020-06-12T10:59

3.2 使用

// 输出特定格式字符串

LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));

// 计算两个时间之间的间隔

String str = "2020-06-12 10:59";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");

LocalDateTime startTime = LocalDateTime.parse(str, formatter);// 开始时间

Duration d = Duration.between(startTime, LocalDateTime.now());// 计算间隔(开始时间, 结束时间)

// 这里返回值是long类型,所以没有小数,奇怪的是没有间隔秒数的方法

System.out.println(d.toDays());// 间隔天数

System.out.println(d.toHours());// 间隔小时数

System.out.println(d.toMinutes());// 间隔分钟数

System.out.println(d.toMillis());// 间隔毫秒数

System.out.println(d.toNanos());// 间隔纳秒数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值