JAVA 8 新时间 API java.time 使用简介
来源:互联网 发布:瓦尔登湖 知乎 编辑:程序博客网 时间:2024/06/06 14:25
JAVA 8 引入新时间API原因是原来的Date类无法支持多线程操作,新时间API支持多线程操作,当java.time包内时间类其值发生改变时,其如同String类,类的实例是不可变的对象,当改变其值的时候就会新生成对象地址,从而改变其对象地址,以保证支持多线程操作。
新的java.time包内类默认均采用ISO-8601时区标准
<给计算机看的时间>
Instant 时间戳 在时间线上的瞬间点 在ISO- 2007-12-03T10:15:30
-> 2007-12-03T10:15:30 .000Z。
<自己使用的日期时间>
LocalDate 在ISO- 2007-12-03 -> 2007-12-03 。
LocalDateTime 在ISO- 2007-12-03T10:15:30 -> 2007-12-03T10:15:30 。
LocalTime 在ISO- 10:15:30 -> 10:15:30 。
Duration 和Period
Duration:用于计算两个“时间”间隔
Period:用于计算两个“日期”间隔
package java8.time;import java.time.Duration;import java.time.Instant;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.Period;import java.time.ZoneId;import java.time.format.DateTimeFormatter;import java.util.Locale;import java.util.Set;import org.junit.Test;public class Demo { /** * 计算时间差 */ @Test public void test1() { Instant time1 = Instant.now(); // 获取系统当前 System.out.println(time1); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } Instant time2 = Instant.now();// 获取休眠后系统时间 Duration duration = Duration.between(time1, time2); // 计算两个时间的差值 System.out.println(duration.toMillis()); } @Test public void test2() { LocalDateTime time1 = LocalDateTime.now(); System.out.println(time1); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } LocalDateTime time2 = LocalDateTime.now(); Duration duration = Duration.between(time1, time2); System.out.println(duration.toMillis()); } /* * 计算两日期相差时间 */ @Test public void test3() { LocalDate date1 = LocalDate.now(); LocalDate date2 = date1.plusDays(5); Period period = Period.between(date1, date2); System.out.println(period.getDays()); } /* * 输入指定日期 按照指定日期格式输出 默认采用ISO-8601日历系统 */ @Test public void test4() { LocalDateTime time = LocalDateTime.of(1997, 06, 13, 12, 59, 0); time = time.plusMinutes(1); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd : hh:mm:ss"); String formatTime = formatter.format(time); System.out.println(formatTime); } /* * 修改默认日期格式 */ @Test public void test5() { // 获取所有日期格式 Set<String> set = ZoneId.getAvailableZoneIds(); // 获取所有亚洲国家时区 set.stream().filter(e -> e.startsWith("Asia")).forEach(System.out::println); LocalDateTime time = LocalDateTime.now(ZoneId.of("Asia/Hong_Kong")); // format 第二个参数 指定国家 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd : hh:mm:ss", Locale.CHINA); System.out.println(formatter.format(time)); System.out.println(time); }}
阅读全文
0 0
- JAVA 8 新时间 API java.time 使用简介
- Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
- java.time时间/日期API
- java.time时间/日期API
- Android 系列 2.11使用Java 8 java.time API简化日期/时间计算
- Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API ) ——诺诺"涂鸦"记忆
- java 8 新特性(5.Date-Time API)
- java.time新API 处理日期选择
- Java 8新特性之新的时间日期API
- Java 8新的日期与时间API
- JAVA 8 新日期和时间API 学习总结
- Java 8新特性 全新的日期时间API
- W3Cschool Java 8新特性----> 日期时间 API
- 介绍 Java 8 Date/Time API
- Joda Time - Java date and time API
- Java 8 日期时间 API
- zabbix的使用:简介+安装+java api
- 【Java8】date api(java.time)
- shell脚本编程-脚本语法-条件测试
- 栈与队列(2)
- 新手个人的玩家移动,视角等控制(不定期完善)
- Xcode8 打包上传AppStore无法构建版本
- 去掉wordpress功能中的登录,文章,评论,.org链接
- JAVA 8 新时间 API java.time 使用简介
- Android初学者Eclispe环境启动遇This Android SDK requires Android Developer Toolkit version 23.0.0 or above
- 黑马商城项目(四)
- php $_SERVER
- 剑指offer---复杂链表复制
- linux 下nginx 的安装重启的时候出现[alert] kill(646, 1) failed (3: No such process)
- 输入一棵二叉树,判断该二叉树是否是平衡二叉树
- NLTK学习笔记(一):语言处理和Python
- 12.5重入