Java8时间处理

Java时间处理

Java8新增的时间处理API

常用时间处理方法的问题

  1. java.util.Datejava.util.Calendar不是线程安全的类
  2. SimpleDateFormat也是非线程安全的类
  3. Calendar获取月份时需要计算,因为月份从0开始

日期/时间类

  • LocalDateLocalTime

    LocalDate类表示一个具体的日期,但不包含具体时间,也不包含时区信息,LocalTime表示一个具体的时间

    LocalDate localDate = LocalDate.of(2017, 1, 4);     // 初始化一个日期:2017-01-04
    LocalTime localTime = LocalTime.of(17, 23, 52);     // 初始化一个时间:17:23:52
  • LocalDateTime

    上述两个类的结合体

    LocalDateTime ldt1 = LocalDateTime.of(2017, Month.JANUARY, 4, 17, 23, 52);
  • Instant

    Instant表示一个时间戳,精确到纳秒

    Instant instant = Instant.ofEpochSecond(120, 100000);
    //参数:seconds表示从1970-01-01 00:00:00开始到现在的秒数,nanos表示纳秒部分(nanos的值不会超过999,999,999)
  • Duration

    Duration表示一个时间段,精确到纳秒

    LocalDateTime from = LocalDateTime.of(2017, Month.JANUARY, 5, 10, 7, 0);    // 2017-01-05 10:07:00
    LocalDateTime to = LocalDateTime.of(2017, Month.FEBRUARY, 5, 10, 7, 0);     // 2017-02-05 10:07:00
    Duration duration = Duration.between(from, to);     // 表示从 2017-01-05 10:07:00 到 2017-02-05 10:07:00 这段时间

日期格式化

  • DateTimeFormatter类处理日期格式化
  • java.time.ZoneId类处理时区

参考链接

原文地址:https://blog.51cto.com/11854036/2433438

时间: 2024-08-01 06:53:30

Java8时间处理的相关文章

java8 时间使用

为什么需要新的时间API 文章来源:https://www.cnblogs.com/guozp/p/10342775.html 在Java 8之前的日期/时间API之前,现有的与日期和时间相关的类存在诸多问题,其中主要有: Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义 java.util.Date同时包含日期和时间,而java.sql.Date仅包含日期,将其纳入java.sql包并不合理.另外

Java8 时间日期类操作

Java8 时间日期类操作 Java8的时间类有两个重要的特性 线程安全 不可变类,返回的都是新的对象 显然,该特性解决了原来java.util.Date类与SimpleDateFormat线程不安全的问题.同时Java8的时间类提供了诸多内置方法,方便了对时间进行相应的操作. 上图为Java8时间类的覆盖范围 相关的类有 LocalDate LocalTime LocalDateTime ZoneId ZonedDateTime Instant Instant类 Instant类用来表示格林威

Java8 时间处理类的使用实践(LocalDate...)

有了它,谁还在用Date?Calendar? 其实也不能这么绝对,毕竟还没到那个程度上.Java8 新增了处理时间的一组类(LocalDate.LocalDateTime.LocalTime),刚开始使用时觉得非常费劲,没有Calendar好用,但是真的使用之后觉得还是比较好用的啊.建议大家以后多多使用.废话少说,看代码~ 1.Date与LocalDate的互转 Date转LocalDate: Date date = new Date(); LocalDate localDate = date.

Java8 时间 API

前言 Java8 中最为人津津乐道的新改变恐怕当属函数式 API 的加入.但实际上,Java8 所加入的新功能远不止这个. 本文将基于<Java SE8 for the Really Impatient>的第 5 章,归纳一下 Java8 加入的位于java.time包下的日期和时间 API. 时间点与时间间隔 在我们常说的四维空间体系中,时间轴往往作为除长宽高三轴以外的第四轴.时间轴由无穷多个时间点组成,而两个时间点之间的距离组成一个时间间隔.相较于我们常说的日期.时间,时间点本身所携带的信

java8时间使用小结

//LocalDate代表一个IOS格式(yyyy-MM-dd)的日期 获取当前的日期: LocalDate localDate = LocalDate.now();//LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的 System.out.println("localDate: " + localDate);//localDate: 2017-08-24 //LocalDate可以指定特定的日期,调用of或parse方法返回该实例: System.

Java8时间的简单时间

package com.java8.date; import org.junit.Test; import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.*; public class DateTest { @Test public void LocalDateTest() { // of方法获取一个指定日期的

Java8 时间处理

Table of Contents 前言 时间单位和时区 时间点 时间段 时间的解析和格式化 时区时间 兼容旧接口 结语 前言 时间处理是一个经常会用到但又不那么好用的功能,其中的主要问题在于对人友好的时间格式的处理上. 在这一点上,Java8 提供了方便我们的使用的新的日期和时间接口. -- 当然了,Java8 出来都这么久了,这接口也不算新了 @[email protected] 时间单位和时区 时间是我们每天都在接触的东西,但我并不是很清楚和它的相关的一些概念,借着这次机会,去了解了时间处

java8 时间矫正器

private static void test5(){ //当前日期 LocalDateTime ldt=LocalDateTime.now(); System.out.println(ldt);//2017-11-04T13:46:39.537 //把日期调整为这月的10号,使用with来设置日 LocalDateTime ldt2=ldt.withDayOfMonth(10);//2017-11-04T13:46:39.537 System.out.println(ldt2); //下一个

java8时间搓计算代码运行时间

Instant start = Instant.now(); // XXXXXXXX(你的代码) Instant end = Instant.now(); //时间搓对象 Duration timeElapsed = Duration.between(start, end); //不同格式展示,下面是分钟和秒的样子,还有小时天这些 long l = timeElapsed.toMinutes(); long ls = timeElapsed.toMillis(); System.out.prin