好用的时间类库,你值得拥有

简介: 好用的时间类库,你值得拥有

什么需要在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提供了时间的比较,计算等类,极大的简化了时间开发。

目录
相关文章
|
3月前
|
安全 Go
时间旅行者的工具箱:Go语言time包解读
时间旅行者的工具箱:Go语言time包解读
49 0
|
3月前
|
安全 Java Unix
Java语言中的日期与时间处理技术
Java语言中的日期与时间处理技术
|
2月前
|
算法 C#
C#开源实用的工具类库,集成超过1000多种扩展方法
C#开源实用的工具类库,集成超过1000多种扩展方法
|
Java
Java 编程问题:三、使用日期和时间4
Java 编程问题:三、使用日期和时间
167 0
|
安全 Java Unix
Java 编程问题:三、使用日期和时间
Java 编程问题:三、使用日期和时间
199 0
|
编解码 Java API
Java 编程问题:三、使用日期和时间2
Java 编程问题:三、使用日期和时间
109 0
|
存储 编解码 Unix
Java 编程问题:三、使用日期和时间3
Java 编程问题:三、使用日期和时间
124 0
|
前端开发 JavaScript API
封装库/工具库中重要概念之日期处理库
在前端开发中,日期处理是一个常见的需求。例如,在Web应用程序中,我们通常需要显示日期、计算日期差值、格式化日期等等操作。然而,JavaScript原生API对日期处理的支持相对较弱,因此在实际开发中,我们通常会使用一些封装库和工具库来简化日期处理。在本文中,我们将探讨前端中一些实用的日期处理库。
90 0
|
前端开发 Java Unix
【Java实战系列】如何扩展加载Jar包?|周末学习
【Java实战系列】如何扩展加载Jar包?|周末学习
197 0
时间轮-Java实现篇
在前面的文章《[时间轮-理论篇](https://developer.aliyun.com/article/910513)》讲了时间轮的一些理论知识,然后根据理论知识。我们自己来实现一个简单的时间轮。