Java 1.8新日期处理类如何改写为长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1317个文字,预计阅读时间需要6分钟。
Java 1.0 包含一个 Date 类,但许多方法在 Java 1.1 引入 Calendar 类后被废弃。Calendar 类相比 Date 类,使用上并不占优。它们面临的问题是可变性:日期和时间对象是否应该不可变。
Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:
-
可变性:象日期和时间这样的类对象应该是不可变的。Calendar类中可以使用三种方法更改日历字段:set()、add() 和 roll()。
-
偏移性:Date中的年份是从1900开始的,而月份都是从0开始的。
-
格式化:格式化只对Date有用,Calendar则不行。
-
此外,它们也不是线程安全的,不能处理闰秒等。
可以说,对日期和时间的操作一直是Java程序员最痛苦的地方之一。第三次引入的API是成功的,并且java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。
本文共计1317个文字,预计阅读时间需要6分钟。
Java 1.0 包含一个 Date 类,但许多方法在 Java 1.1 引入 Calendar 类后被废弃。Calendar 类相比 Date 类,使用上并不占优。它们面临的问题是可变性:日期和时间对象是否应该不可变。
Java1.0中包含了一个Date类,但是它的大多数方法已经在Java 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:
-
可变性:象日期和时间这样的类对象应该是不可变的。Calendar类中可以使用三种方法更改日历字段:set()、add() 和 roll()。
-
偏移性:Date中的年份是从1900开始的,而月份都是从0开始的。
-
格式化:格式化只对Date有用,Calendar则不行。
-
此外,它们也不是线程安全的,不能处理闰秒等。
可以说,对日期和时间的操作一直是Java程序员最痛苦的地方之一。第三次引入的API是成功的,并且java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。

