一、时间日期类
Java 8 在
java.time
包下提供了很多新的 API。以下为两个比较重要的 API:
Local(本地) − 简化了日期时间的处理,没有时区的问题。
Zoned(时区) − 通过制定的时区处理日期时间。
二、本地化时间日期 API
LocalDate
、LocalTime
和LocalDateTime
类可以处理没有时区问题的情况
获取本地时间
LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.now(); LocalTime localTime = LocalTime.now(); System.out.println(localDate); System.out.println(localDateTime); System.out.println(localTime);//输出: 2018-11-03//2018-11-03T11:48:53.609//11:48:53.609
对时间的操作
LocalDateTime localDateTime = LocalDateTime.now();//增加5年LocalDateTime localDateTime1 = localDateTime.plusYears(5); System.out.println(localDateTime1);//减少4个月LocalDateTime localDateTime2 = localDateTime.minusMonths(4); System.out.println(localDateTime2);//获取月份int monthValue = localDateTime.getMonthValue(); System.out.println(monthValue);//获取周DayOfWeek dayOfWeek = localDateTime.getDayOfWeek(); System.out.println(dayOfWeek);//获取年份int year = localDateTime.getYear(); System.out.println(year);//2023-11-03T15:10:52.405//2018-07-03T15:10:52.405//11//SATURDAY//2018
计算间隔
Duration:计算两个时间之间的间隔
LocalDateTime localDateTime = LocalDateTime.now(); Thread.sleep(500); LocalDateTime localDateTime1 = LocalDateTime.now(); Duration duration = Duration.between(localDateTime,localDateTime1); System.out.println(duration.toMillis());//输出:505
Period: 计算两个日期之间的间隔
LocalDate localDate = LocalDate.now(); LocalDate localDate1 = LocalDate.of(2008,8,8); Period period = Period.between(localDate1,localDate); System.out.println(period.getYears()+":"+period.getMonths()+":"+period.getDays());//输出:10:2:26
格式化时间或日期
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-mm-dd:hh:mm:ss"); LocalDateTime localDateTime = LocalDateTime.now();String format = dateTimeFormatter.format(localDateTime); System.out.println(format);//输出:2018-44-03:03:44:22
三、使用时区的时间日期API
//获取时区为 Europe/Paris 的时间LocalDateTime localDateTime = LocalDateTime.now(ZoneId.of("Europe/Paris")); System.out.println(localDateTime);//组合一个带有时区的日期ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Europe/Paris")); System.out.println(zonedDateTime);//获取当前时区ZoneId zoneId = ZoneId.systemDefault(); System.out.println(zoneId);//输出:2018-11-03T08:51:34.629//2018-11-03T08:51:34.629+01:00[Europe/Paris]//Asia/Shanghai
作者:Mr_欢先生
链接:https://www.jianshu.com/p/a873bbed8981
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦