Java-JDK1.8新增的时间类API

一.LocalDate、 LocalTime、 LocalDateTime概述
LocalDate、 LocalTime、 LocalDateTime类的实例是不可变的对象,

  • 分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。

  • 它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。

  • 注: ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法
    这些新增的日期时间API都在 java.time包下
    二.获取对象的方法
    1.通过静态方法now()
    在这里插入图片描述
    2.通过静态方法of()方法参数可以指定年月日时分秒(三个类的属性都比较相似,我就只举一个例子)
    在这里插入图片描述
    三.常用方法
    1.get系类的方法

      	ldt.getYear();获取年
      	ldt.getMinute();获取分钟
      	ldt.getHour();获取小时
      	getDayOfMonth 获得月份天数(1-31)
      	getDayOfYear 获得年份天数(1-366)
      	getDayOfWeek 获得星期几(返回一个 DayOfWeek枚举值)
      	getMonth 获得月份, 返回一个 Month 枚举值
      	getMonthValue 获得月份(1-12)
      	getYear 获得年份
    

在这里插入图片描述
2.格式化日期日期字符串的方法 format()
这里要提到一个类,DateTimeFormatter JDK1.8提供格式化日期的类
在这里插入图片描述
3.转换的方法 toLocalDate();toLocalTime();
在这里插入图片描述
4.判断的方法
isAfter()判断一个日期是否在指定日期之后
isBefore()判断一个日期是否在指定日期之前
isLeapYear()判断是否是闰年注意是LocalDate类中的方法
注意:时间类的对象要对应
在这里插入图片描述
5.解析的静态方法parse(“2007-12-03T10:15:30”);
paser() 将一个日期字符串解析成日期对象,注意字符串日期的写法的格式要正确,否则解析失败
(1)使用默认格式解析
例如:LocalDateTime parse = LocalDateTime.parse(“2007-12-03T10:15:30”);

(2)按照我们指定的格式去解析:

		注意细节:如果用LocalDateTime 想按照我们的自定义的格式去解析,注意日期字符串的 年月日时分秒要写全,不然就报错
			LocalDateTime ldt4 = LocalDateTime.now();
			DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
			LocalDateTime.parse("2018-01-21 20:30:36", formatter2);

在这里插入图片描述
6.添加年月日时分秒的方法 plus系列的方法 都会返回一个新的LocalDateTime的对象
LocalDateTime localDateTime = ldt.plusYears(1);
LocalDateTime localDateTime1 = ldt.plusMonths(3);
LocalDateTime localDateTime2=ldt.plusHours(10);
7.减去年月日时分秒的方法 minus 系列的方法 注意都会返回一个新的LocalDateTime的对象
LocalDateTime localDateTime2 = ldt.minusYears(8);
8.指定年月日时分秒的方法 with系列的方法 注意都会返回一个新的LocalDateTime的对象
LocalDateTime localDateTime3 = ldt.withYear(1998);
##.获取这个月的第几个星期几是几号,比如 TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.FRIDAY) 代表的意思是这个月的第二个星期五是几号
在这里插入图片描述
四.Instant 时间戳类
1.获取对象的方法now();
注意默认获取出来的是当前的美国时间和我们相差八个小时
在这里插入图片描述
2. Instant中设置偏移量的方法:atOffset() 设置偏移量
在这里插入图片描述
3.获取系统默认时区时间的方法atZone()
方法的参数是要一个时区的编号可以通过时区编号类获取出来
在这里插入图片描述
4.get系列的方法
getEpochSecond() 获取从1970-01-01 00:00:00到当前时间的秒值
getNano()方法是把获取到的当前时间的秒数 换算成纳秒

	long epochSecond = ins.getEpochSecond();//获取从1970-01-01 00:00:00到当前时间的秒值
	getNano()方法是把获取到的当前时间的秒数 换算成纳秒 比如当前时间是2018-01-01 14:00:20:30
	那就把30秒换算成纳秒 int nano = ins.getNano();
  1. ofEpochSecond()静态方法 给计算机元年增加秒数
    在这里插入图片描述
    五.Duration : 用于计算两个“时间”间隔的类
    静态方法:between() 计算两个时间的间隔,默认是秒
    Duration中的toMillis()方法:将秒转成毫秒
    在这里插入图片描述
    六.Period : 用于计算两个“日期”间隔的类
    Period类 中的静态方法between()
    在这里插入图片描述
    七.TemporalAdjuster : 时间校正器,是个接口
    一般我们用该接口的一个对应的工具类 TemporalAdjusters中的一些常量,来指定日期
    1 使用TemporalAdjusters自带的常量来设置日期
    LocalDate with = now.with(TemporalAdjusters.lastDayOfYear());
    System.out.println(with);
    2 采用TemporalAdjusters中的next方法来指定日期
    LocalDatedate=now.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
    System.out.println(date);
    例如:TemporalAdjusters.next(DayOfWeek.SUNDAY) 本周的星期天
    例如:TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY) 下一周的星期一
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JDK1.8是Java开发工具包的一个版本,也叫Java SE 8。它包含了Java编译器、虚拟机、类库和相关工具等组成部分。相对于较老的版本,JDK1.8相对增加了许多新特性和改进,让Java编程更加灵活、高效和安全。 JDK1.8中的新特性包括Lambda表达式、Stream API、接口默认方法、新的日期和时间API等等。Lambda表达式允许开发者以更简洁、易读的方式处理集合数据,提高开发效率。Stream API则提供了在集合上进行功能性编程的能力,能够以更简单、流畅的方式处理数据。接口默认方法则简化了接口的实现,减少了代码的重复。新的日期和时间API还解决了在较老版本中日期时间的一些问题,提供了更好的日期和时间处理方式。 JDK1.8中还包含了一些安全性改进,例如对于网络传输和数据加密的支持等等。开发者可以使用更安全的方式处理数据,防止数据泄漏和攻击等问题。 总的来说,JDK1.8提供了许多新特性和改进,方便了Java开发者进行开发,并且增强了Java应用程序的灵活性、高效性和安全性。 ### 回答2: JDK 1.8是Java Development Kit的一个版本,是Java语言的一个开发工具包。它也被称为Java SE 8。 JDK 1.8相对于之前的版本,有很多重要的改进和新增功能,例如: 1. Lambda表达式:Lambda表达式是一个匿名函数,可以使得Java代码更加简洁易懂。使用Lambda表达式可以使得代码更加模块化,可以有效地减少重复代码。 2. Stream API:Stream API是一组新功能,可以帮助我们更方便地处理集合和数组等数据结构。Stream API提供了丰富的方法,可以让我们直接对数据进行转换、筛选、排序等操作。 3. 新的时间日期API:JDK 1.8引入了新的时间日期API,为Java处理时间和日期问题提供了更好的支持。新的时间日期API提供了更加清晰和易用的API,可以有效地避免旧的Date和Calendar类的一些问题。 4. 接口的默认方法:在JDK 1.8中,我们可以为接口添加默认的方法实现。这使得接口能够包含一些通用的方法实现,从而让使用接口的代码更加简单。 总之,JDK 1.8为Java开发者提供了更多的工具和技术,使得Java程序员可以更快速、更方便地进行开发。 ### 回答3: JDK1.8是Java Development Kit的简称,是Java语言的一种开发工具集。该版本于2014年发布,为Java 8版本,带来了许多新的特性和改进,如Lambda表达式、Stream API、方法引用、默认与静态方法接口、Date/Time API等。这些新特性大大提高了Java语言的效率和易用性,同时也激发了Java开发者的创造力与潜力,为Java开发带来了更多的可能性。JDK 1.8版本的发布也为Java应用程序和云计算带来了更大的优势,加强了Java在大数据分析、互联网应用、移动应用、嵌入式系统等领域的发展。总的来说,JDK 1.8版本是Java历史上的一个重要里程碑,在为Java开发者提供更多便捷和全面的工具之余,也为Java语言本身注入了更多的活力和生机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值