Skip to content

JEP 150: Date & Time API | 日期和时间 API

摘要

这个项目旨在为 Java SE 平台定义一个新的日期、时间和日历 API。

目标

  • 支持标准的时间概念,包括日期、时间、即时和时区
  • 使用不可变的实现
  • 提供适用于 JDK 的有效 API,专注于开发人员的可用性
  • 与现有的 JDK API 集成
  • 提供一组有限的日历系统,并可扩展到其他日历系统
  • 使用相关的标准,包括 ISO-8601、CLDR 和 BCP47
  • 基于明确的时间标度,并与 UTC 有关联

非目标

解决所有日期 / 时间问题并不是一个目标,但新的 API 应该是外部扩展的合适基础。

动机

现有的 Java 日期和时间类质量较差,可变性强,性能不可预测。长期以来,大家一直希望基于 Joda-Time 项目建立一个更好的日期和时间 API。新的 API 将具有更直观的设计,能更好地表达代码的意图。这些类还将是不可变的,与行业的多核方向保持一致。

描述

JSR 310 EG 一直在为 Java 平台开发一个新的日期 / 时间 API。该项目的目标是将 JSR 310 参考实现 整合到 JDK 8 中。

整合将涉及与任何新的模块化系统的成功配合。可能需要为核心嵌入式和移动模块提供一部分功能的子集。

该项目还要求将 JSR 310 类与现有的类集成。例如,在 JDK 中只应该有一个时区数据源。还打算让现有的格式化器支持新的类。

测试

除了正常的单元 / 回归测试开发之外,没有特定的要求。JSR 310 已经开发了一个庞大的测试套件,正在将其分为 TCK 和非 TCK 测试。

风险和假设

该项目主要由非 Oracle 人员实施,他们没有全职从事这个项目的资金支持。

需要对不可变性和线程安全性进行审查并进行假设。

依赖

  • 当前没有对 Project Lambda 的依赖,但在整合过程中可能会发生变化。

  • 整个 JDK 的模块化系统设计将影响 JSR 310 的设计。

影响

  • 其他 JDK 组件:应该审查其他 API,看它们是否可以使用 JSR 310 类
  • 兼容性:新代码和一些现有类上的新方法
  • 安全性:预计没有影响
  • 国际化 / 本地化:可能需要额外的 i18n 框架来更好地支持非公历日历
  • 可移植性:基本工作不需要额外的本机代码,但更精确的系统时钟是可取的
  • 文档:标准的 javadoc 和示例,可能还需要更新教程 / 指南
  • TCK:新的 JCK 测试开发
  • 法律问题:整合来自 JSR 310 的 BSD 3-clause 许可的代码

Page Layout Max Width

Adjust the exact value of the page width of VitePress layout to adapt to different reading needs and screens.

Adjust the maximum width of the page layout
A ranged slider for user to choose and customize their desired width of the maximum width of the page layout can go.

Content Layout Max Width

Adjust the exact value of the document content width of VitePress layout to adapt to different reading needs and screens.

Adjust the maximum width of the content layout
A ranged slider for user to choose and customize their desired width of the maximum width of the content layout can go.