java8新特性之时间API

简介: java8新特性之时间API

为什么需要在Java8中引入新的日期和时间库?



  1. 在java1.0中,对时间和日期的支持只能依赖 java.util.date 类,但这个类无法表示日期,只能以毫秒的精度表示时间,易用性也较低。


Date date = new Date(114,2,18);
//打印结果
Tue Mar 18 00:00:00 CST 2014


  1. 在java1.1中,同时存在Date和Calendar类,增加了程序员的选择困惑,并且月份是从0开始
  2. DateFormate类只支持Date类


LocalDate:提供简单的日期,不包含时间信息



//创建一个不可变的日期对象
LocalDate date = LocalDate.now(); //返回当前日期
LocalDate date = LocalDate.of(2014,3,18); //返回一个指定日期
LocalDate date = LocalDate.parse("2014-03-18"); //解析字符串,生成一个LocalDate对象
...
//获取日期时间的方法
int year = date.getYear(); //获取年
getDayOfMonth(); //获取月中的日
getMonth(); //获取月份
getDayOfWeek(); //获取星期
lengthOfMonth(); //获取月份的天数
isLeapYear(); //是否是周年
...
//操作LocalDate方法(一部分)
withYear(int year); //设置年
withDayOfMonth(int day); //设置日
with(ChronoFiled.MONTH_OF_YEAR,int month); //设置月份
plusWeek(int week); //添加周数
minusYears(int year); //减去year年
plus(int month,ChronoUnit.MONTHS); //修改月份
...
//比较的方法
isEqual(); //是否相等
isBefore(); //是否先于
isAfter(); //是否后于


LocalTime:提供简单的时间,不包含日期信息



//创建一个时间对象
LocalTime time = LocalTime.now(); //当前时间
LocalTime time = LocalTime.of(13,23,46); //自定义时间
LocalTime time = LocalTime.parse("13:23:46"); //解析时间
...
//获取时间的方法
getHour(); //获取小时
getMinute(); //分
getSecond(); //秒
...
//操作时间的方法
plusHour(); //小时
plusMinute(); //操作分钟
plusSecond(); //秒
...
//比较的方法
isEqual(); //是否相等
isBefore(); //是否先于
isAfter(); //是否后于
``


LocalDateTime:整合了LocalDate和LocalTime



//创建日期时间对象
LocalDateTime dateTime = LocalDateTime.now(); //当前啊日期时间
LocalDateTime dateTime = LocalDateTime.of(LocalDate.now,LocalTime.now); //指定日期时间
LocalDateTime dateTime = LocalDateTime.parse("2018-08-08 08:08:08"); //解析时间
//获取日期时间的方法
getYear(); //获取年
getDayOfMonth(); //获取月中的日
getMonth(); //获取月份
getDayOfWeek(); //获取星期
getHour(); //获取小时
getMinute(); //分
getSecond(); //秒
...
//操作日期时间的方法
withYear(int year); //设置年
withDayOfMonth(int day); //设置日
with(ChronoFiled.MONTH_OF_YEAR,int month); //设置月份
plusHour(); //小时
plusMinute(); //操作分钟
plusSecond(); //秒
...
//比较的方法
isEqual(); //是否相等
isBefore(); //是否先于
isAfter(); //是否后于
``


Duration:用于计算两个LocalTime或两个LocalDateTime之间的时间差; Peroid用于计算两个LocalDate之间的差值



Duration duration = Duration.between(LocalTime.of(12,12,12),LocalTime.now());
long second = duration.getSeconds(); //时间差
Peroid peroid = Peroid.between(LocalDate.now(),LocalDate.now());
int month = peroid.getMonth(); //getDay(),getYear() 时间差值


时间戳:Instance



Instant now = Instant.now();


总结



新的时间API提供了时间的比较,计算等类,极大的简化了时间开发。


目录
相关文章
|
5月前
|
Java API 数据处理
Java 8新特性:Stream API的实用指南
【8月更文挑战第3天】在Java 8中,最引人注目的新特性之一是Stream API。这个API允许开发者以声明式方式处理数据集合,提供了一种高效且易于理解的数据处理方法。本文将介绍Stream API的基本概念、常用操作以及如何在实际开发中应用。
|
8月前
|
Java API
Java 8新特性之Stream API详解
【5月更文挑战第30天】本文将详细介绍Java 8中的一个重要新特性——Stream API。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,使得代码更加简洁、易读。文章将从Stream的基本概念、创建方式、常用操作以及实战案例等方面进行详细讲解,帮助读者深入理解并掌握Stream API的使用。
77 2
|
8月前
|
Java API 数据处理
Java 8新特性:Stream API详解
【5月更文挑战第28天】本文将详细解析Java 8的新特性之一——Stream API。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明性和函数式的方式处理数据。我们将深入探讨Stream API的基本概念,使用方法以及一些高级技巧。无论你是Java初学者还是经验丰富的开发者,都可以从中获得有用的信息。
|
存储 Java API
java8新特性:Stream API
java8新特性:Stream API
89 0
|
8月前
|
存储 Java 关系型数据库
Java8新特性:强大的Stream API
Java8新特性:强大的Stream API
51 0
|
8月前
|
存储 安全 Java
JAVA8实战 - 日期API
JAVA8实战 - 日期API
141 0
|
8月前
|
Java API
Java8中时间API
Java8中时间API
|
Java 程序员 API
java8新特性之时间API
java8新特性之时间API
85 0
|
安全 Java API
Java 8 - 时间API
Java 8 - 时间API
88 0
|
Java API
Java8新特性 | Stream API
本文讲解Java8中的新特性
204 0
Java8新特性 | Stream API