首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 的时间日期 API

自从 14 年发布 Java 8 以后,我们古老 java.util.Date 终于不再是我们 Java 里操作日期时间的唯一的选择。...其实 Java 里的日期时间的相关 API 一直为世猿诟病,不仅在于它设计分上工不明确,往往一个类既能处理日期又能处理时间,很混乱,还在于某些年月日期的数值映射存储反人类,例如:0 对应月份一月,11...往往我们得到某个年月值还需要再做相应的运算才能得到准确的年月日信息,直到我们的 Java 8 ,借鉴了第三方开源库 Joda-Time 的优秀设计,重新设计了一个日期时间 API,相比之前,可以说好用百倍...,相关 API 接口全部位于包 java.time 下。...限于篇幅,我们下篇将对比 Java 8 的新式日期时间 API,你会发现它更加优雅的设计和简单的操作性。

2.1K70
您找到你想要的搜索结果了吗?
是的
没有找到

Java 8 日期时间 API

java 8 通过发布新的Date-Time API (JSR 310)来进一步加强对日期和时间的处理。...Java 8 日期时间 API 在旧版本的Java日期时间API存在诸多问题,其中有: 非线程安全 - java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一...设计很差 - Java日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包定义。...Java 8 在java.time包下提供了很多新的API。以下为两个比较重要的API: Local(本地) - 简化了日期时间的处理,没有时区的问题。...API 如果我们需要考虑到时区,就可以使用时区的日期时间API: public class Java8Tester { public static void main(String args[]

1K10

JAVA8实战 - 日期API

JAVA8实战 - 日期API 前言 这一节我们来讲讲JAVA8的日期类,源代码的作者其实就是Joda-Time,所以可以看到很多代码的API和Joda类比较像。...日期类一直是一个比较难用的东西,但是JAVA8给日期类提供了一套新的API日期类更加好用。 本文代码较多,建议亲自运行代码理解。...日期API的一些个人工具封装举例,以及在使用JDK8的时候一些个人的踩坑 最后希望通过本文能帮你摆脱new Date() 什么是ISO-8601?...JDK8日期类关于时区的强相关类(注意是JDK8才出现的类,不要误认为是对之前类的兼容),在之前的单元测试其实已经用到了相关时区的方法,在JDK8使用了 ZoneId这个类来表示,但是我们有时候不知道怎么获取地区...总结: 在个人编写工具类的过程,发现确实比之前的Date和Calendar这两个类用起来好很多,同时JDK8的日期类都是「线程安全」的。

1.5K30

Java8新日期处理API

Java8引入了一套全新的时间日期API,本篇随笔将说明学习java8的这套APIjava.time包的是类是不可变且线程安全的。...java8日期与时间API的几个关键点 经过上面的例子,我们已经对java8的时间日期有了一定的了解,现在回顾一下 ●它提供了javax.time.ZoneId用来处理时区。...●它提供了LocalDate与LocalTime类 ●Java 8新的时间与日期API的所有类都是不可变且线程安全的,这与之前的Date与Calendar API的恰好相反,那里面像java.util.Date...关于Java 8这个新的时间日期API就讲到这了。这几个简短的示例 对于理解这套新的API的一些新增类已经足够了。我们学习了如何创建与修改日期实例。...我们还学习了如何在Java 8用线程安全的方式对日期进行解析及格式化,而无需再使用线程本地变量或者第三方库这种取巧的方式。新的API能胜任任何与时间日期相关的任务。

4.1K100

java8 异步api、循环、日期

java8 异步api、循环、日期 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/10801470.html 异步api 对于多任务耗时的业务场景,一般我们会用到线程异步处理...Thread 或者 Runnable 来实现异步,这是oracle官方做法,不过缺点很明显 对于复杂业务场景需要配置线程池 代码繁杂,对于新手容易造成不必要的bug 如果涉及到线程锁或线程通讯就棘手了 现在,java8...CompletableFuture.anyOf(a,b,c); String result = (String)any.get(); System.out.println(result); } 循环ForEach java8...:").concat(String.valueOf(v)))); String str = "hello"; } 新的时间类(LocalDate、LocalDateTime) java8...().format(DATE_TIME_FORMATTER)); } 日期加减 /**日期加减**/ @Test public void plusDay(){

84060

Java 8 的时间日期 API

上一篇文章『Java 的时间日期 API,我们学习了由 Date、Calendar,DateFormat 等组成的「传统时间日期 API」,但是传统的处理接口设计并不是很友好,不易使用。...终于,Java 8 借鉴第三方优秀开源库 Joda-time,重新设计了一套 API。 那么本篇文章就来简单学习一下新式的时间日期处理接口。...处理日期的 LocalDate 不同于 Calendar 既能处理日期又能处理时间,java.time 的新式 API 分离开日期和时间,用单独的类进行处理。...格式化日期时间 Java 8 的新式日期时间 API ,DateTimeFormatter 作为格式化日期时间的主要类,它与之前的 DateFormat 类最大的不同就在于它是线程安全的,其他的使用上的操作基本类似...最后,关于 java.time 包下的新式日期时间 API,我们简单的学习了下,并没有深入到源码实现层次进行介绍,因为底层涉及大量的系统接口,涉及到大量的抽象类和实现类,有兴趣的朋友可以自行阅读 jdk

1.5K40

Java 8 新特性|(新)日期API_本地日期时间

一、历史日期APIjava.util.Date 处理日期 java.util.Calendar 处理日历 java.util.GregoiranCalendar 日历表示 java.text.SimpleDateFormat...日期时间格式化 二、历史日期API 【坑】 1、 非线程安全:java.util.Date 并不是线程安全的。...2、设计不佳 :一方面日期日期格式化分布在多个包。另一方面,java.util.Date 的默认日期,年竟然是从 1900 开始,月从 1 开始,日从 0 开始,没有统一性。...三、Java 8 (新)日期API Java 8 终于重新设计了所有日期时间、日历及时区相关的 API。并把它们都统一放置在 java.time 包和子包下。...同时 Java 8 还针对原来复杂的 API 进行重新组合和拆分,分成了好多个类。 1、 新的日期时间 API 是线程安全的。

29420

Java的时间和日期(三):java8新的时间API介绍

由于java7及以前的版本对时间的处理都存在诸多的问题。自java8之后,引入了新的时间API,现在对这些新的API及其使用进行介绍。...2.无时区的日期和时间LocalDate、LocalTime、LocalDateTime 与Calendar不同的是,在新版本的API,将日期和时间做了分离,用单独的类进行处理。...需要注意的是,在新版本API日期,都是final修饰的内部属性,是不可变类。而Date则是transient的可变类。...这在实际操作的过程需要注意,避免因为理解误差而导致出错。 这一块方法的命名规则也是我们在实际过程中值得参考的。 6.新旧日期格式转换 在java8的Date增加了和Instant转换的方法。...新版本API的一些介绍。

1.9K30

Java SE8 日期和时间API

Java Date和Time API 规范要求Java使用的时间尺度为: 每天86400秒 每天正午与官方时间精确匹配 在其他时间点上,以精确定义的方式与官方时间接近匹配。...本地日期 Java API包含两种人类时间, 本地日期/时间 和时区时间。 本地日期/时间包含日期和当天的时间,但是与时区信息没有任何关联。 例如:2023年3月13日 就是一个本地日期。...Date和Time API 必须能够与已有类之间进行互操作,特别是java.util.Date、java.util.GregorianCalendar和java.sql.Date/Time/Timestamp...ZonedDateTime近似于java.util.GregorianCalendar,Java SE8,有更细粒度的转换。...还有一类java.sql包日期和时间类。 可以传递一个DateTimeFormatter给使用java.text.Format的遗留代码。

1.4K30

Java】常用API——日期时间类、System类

专栏介绍 【Java】 目前主要更新Java,一起学习一起进步。 本期介绍 本期主要介绍常用API——日期时间类、System类 文章目录 1....日期时间类 1.1 Date类 概述 java.util.Date 类 表示特定的瞬间,精确到毫秒。...1.2 DateFormat类 java.text.DateFormat 是日期 / 时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文 本之间的转 换 , 也就是可以在 Date...在 Calendar 类,月份的表示是以 0-11 代表 1-12 月。 日期是有大小关系的,时间靠后,时间越大。 2. ...System类 java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在 System 类的 API 文 档,常用的方法有: public

1.3K20

JavaAPI——Calendar日期类使用+题目演示

Java 的 Calendar 类是用于处理日期和时间的抽象类。它提供了一种将日期和时间信息封装到单个对象的方式,可以进行日期和时间的计算、格式化等操作。...下面是 Calendar 类的一些常用方法和属性: 导入对应包: import java.util.Calendar; 获取 Calendar 对象: Calendar calendar = Calendar.getInstance...(); // 获取当前日期和时间的 Calendar 对象 设置日期和时间: calendar.set(Calendar.YEAR, 2024); // 设置年份为 2024 calendar.set(...Calendar 类本身不直接支持日期和时间的格式化,通常需要借助 SimpleDateFormat 类来进行格式化操作。...请回答该年份(只写这个4位整数,不要写12月31等多余信息) 题目代码 import java.util.Calendar; public class Main { public static

14610

java日期

java日期类 一、日期类 1.1 第一代日期类 1.1.1 Date类 1.1.2 SimpleDateFormat类 1.2 第二代日期类Calendar 1.3 第三代日期类 1.3.1...第一代日期时间API主要有java.util.Date和日期时间格式化有关的java.text.DateFormat及其子类。...1.3 第三代日期java8引入的java.time纠正了过去的缺陷,这就是第三代日期APIjava8吸收了Joda-Time的精华,以一个新的开始为Java创建优秀的API。...新的java.time包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration...第二种通用模型是面向计算机的,在此模型,时间线的一个点表示一个整数,这有利于计算机处理。在UNIX这个数从1970年开始,以秒为单位;同样在Java也是从1970年开始的,但以毫秒为单位。

3.6K20

JSR310新日期API(二)-日期时间API

JSR310新日期API(二)-日期时间API 前提 这篇文章主要介绍一下日期时间API中最常用的类库,分别是: java.time.Clock:时钟。...LocalDate是一个不可变的日期对象,也就是只能表示日期,通常的表示格式为年-月-日,同时提供其他日期字段的访问,例如一年的第几日(day-of-year)、星期几(day-of-week)和一年的第几周...应该是JSR-310最复杂但是最全面的日期时间类(它的API文档中注释也是最多的,从这点也可以看出它的复杂性)。...是一个枚举,代表ISO-8601日期系统的月份。...日期时间API,长整型的时间戳毫秒也可以通过各种日期时间类的构造或者静态工厂方法创建对应的实例。

2.3K30

Java 8新特性 全新的日期时间API

为什么我们需要新的 Java Date Time API? 我们关注Java 8 Date Time API使用之前,先看一下我们为什么需要它们。...之前,在与日期、时间关联的java存在以下几个问题: java日期、时间类定义不一致。...Date 、Calendar还存在其他的问题,但是上述问题已经表明java需要更强大的日期时间API了。这也是为什么 Joda Time 作为Java Date Time的替代者的原因了。...清晰 在众多类声明了同样动作的方法。例如 now()方法获得当前实例。format()、parse()都在这些类中有定义。而不是分离出来在不同的类定义。...Java 8 Date Time APIJava 8 Date Time API包含以下包: java.time包 这是新的Java Date Time API基础包。

44420
领券