JEP 150: Date & Time APIJEP 150: Date & Time APIAuthorStephen ColebourneOwnerXueming ShenTypeFeatureScopeSEStatusClosed / DeliveredRelease8Componentcore-libsJSR310Discussioncore dash libs dash dev at openjdk dot java dot netEffortLDurationLBlocksJEP 170: JDBC 4.2DuplicatesJEP 151: Compress Time-Zone DataEndorsed byBrian GoetzCreated2012/02/22 20:00Updated2015/01/22 17:18Issue8046140Summary
Define a new date, time, and calendar API for the Java SE platform.
Goals

Support standard time concepts including date, time, instant, and
time-zone
Immutable implementations
Provide an effective API suitable for the JDK, focussed on developer
usability
Integrate with existing JDK APIs
Provide a limited set of calendar systems and be extensible to others
Use relevant standards, including ISO-8601, CLDR, and BCP47
Be based on an explicit time-scale with a connection to UTC

Non-Goals
It is not a goal to solve all date/time problems, but the new API should
be a suitable base for external extensions.
Motivation
The existing Java date and time classes are poor, mutable, and have
unpredictable performance.  There has been a long-standing desire for a
better date and time API based on the Joda-Time project.  The new API
will have a more intuitive design allowing code to better express its
intent.  The classes will also be immutable which aligns with the
multi-core direction of the industry.
Description
The JSR 310 EG has been working on a new date/time API for Java
platform.  The goal of this project is to integrate the
JSR 310 reference implementation into JDK 8.
Integration will involve successfully working with any new module system.
There may be a need to provide for core embedded and mobile module with a
subset of functionality.
The project will also require the JSR 310 classes to be integrated with
existing classes.  For example, there should be only one source of
time-zone data in the JDK.  It is also intended that the existing
formatters will support the new classes.
Testing
No specific requests beyond the normal unit/regression test development.
JSR 310 has already developed a large test suite, which is being divided
into TCK and non-TCK tests.
Risks and Assumptions
The project is primarily implemented by non-Oracle personnel who are not
funded to work full-time on this project.
A review of immutability and thread-safety will be necessary and is
assumed.
Dependences


There are no current dependencies on Project Lambda, however that may
change during integration.


The module system design for the whole JDK will affect the design of
JSR 310.


Impact


Other JDK components: Other APIs should be reviewed to see if they
could utilise JSR 310 classes


Compatibility: New code and some new methods on existing classes


Security: None expected


I18n/L10n: Might need additional i18n framework to better support
non-Gregorian calendars


Portability: The basic work requires no additional native code,
however a more precise system clock would be desirable


Documentation: Standard javadoc & examples, probably updates to the
tutorial/guides


TCK: New JCK test development


Legal: Integration of BSD 3-clause licensed code from JSR 310


InstallingContributingSponsoringDevelopers' GuideVulnerabilitiesJDK GA/EA BuildsMailing listsWiki
                      · IRCBylaws · CensusLegalWorkshopJEP ProcessSource codeMercurialGitHubToolsGitjtreg harnessGroups(overview)AdoptionBuildClient LibrariesCompatibility & Specification ReviewCompilerConformanceCore LibrariesGoverning BoardHotSpotIDE Tooling & SupportInternationalizationJMXMembersNetworkingPortersQualitySecurityServiceabilityVulnerabilityWebProjects(overview,
      archive)AmberBabylonCRaCCaciocavalloClosuresCode ToolsCoinCommon VM InterfaceCompiler GrammarDetroitDevelopers' GuideDevice I/ODukeGalahadGraalIcedTeaJDK 7JDK 8JDK 8 UpdatesJDK 9JDK
      (…,
       21,
       22,
       23)JDK UpdatesJavaDoc.NextJigsawKonaKullaLambdaLanaiLeydenLilliputLocale EnhancementLoomMemory Model UpdateMetropolisMission ControlMulti-Language VMNashornNew I/OOpenJFXPanamaPenrosePort: AArch32Port: AArch64Port: BSDPort: HaikuPort: Mac OS XPort: MIPSPort: MobilePort: PowerPC/AIXPort: RISC-VPort: s390xPortolaSCTPShenandoahSkaraSumatraTiered AttributionTsanType AnnotationsValhallaVeronaVisualVMWakefieldZeroZGC

        © 2024 Oracle Corporation and/or its affiliates
        Terms of Use
        ·
        
            License: GPLv2
        · Privacy
        · Trademarks
