SimpleDateFormat vs DateFormat vs Joda-Time:Kotlin 应该首选哪一个?

Posted

技术标签:

【中文标题】SimpleDateFormat vs DateFormat vs Joda-Time:Kotlin 应该首选哪一个?【英文标题】:SimpleDateFormat vs DateFormat vs Joda-Time : Which one should be preferred with Kotlin? 【发布时间】:2021-11-09 19:25:42 【问题描述】:

哪一个在处理和格式化日期方面效率最高,并且还避免了对第三方组件的不必要依赖?

【问题讨论】:

使用 Java 8 日期/时间 API,可通过desugaring 在各种设备上使用。 Joda-time 是一个第三方组件。 我认为投票结束这个是基于意见的,但决定不这样做。答案不是基于意见的:使用 java.time,现代 Java 日期和时间 API。 【参考方案1】:

TL;DR

毫无疑问,java.time,现代日期时间 API 和标准库的一部分,是目前最推荐的选项。

java.util Date-Time API 及其格式化 API,SimpleDateFormat:

java.util 日期时间 API 及其格式化 API SimpleDateFormat(扩展 java.text.DateFormat)已经过时且容易出错。建议完全停止使用它们并切换到java.time,modern Date-Time API*

Joda-Time API:

以下引用来自home page of Joda-Time的通知:

请注意,从 Java SE 8 开始,用户被要求迁移到 java.time (JSR-310) - JDK 的核心部分,它取代了这个项目。

此外,Joda-Time API 不是 Java 的标准 API;相反,它是一个 3rd 方库。

java.timeAPI:

这是现代的日期时间 API,在 Java SE 8 中引入,作为JSR-310 implementation 的一部分,以模拟ISO_8601 标准。您可以从 Trail: Date Time 了解 java.time API。


* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 和 7 . 如果您正在为一个 android 项目工作,并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring 和 How to use ThreeTenABP in Android Project。

【讨论】:

以上是关于SimpleDateFormat vs DateFormat vs Joda-Time:Kotlin 应该首选哪一个?的主要内容,如果未能解决你的问题,请参考以下文章

SimpleDateFormat vs DateFormat vs Joda-Time:Kotlin 应该首选哪一个?

SimpleDateFormat日期格式(浅面)

Java学习笔记4.6.2 格式化 - SimpleDateFormat类

项目中 SimpleDateFormat 的正确使用

安全优雅的使用SimpleDateFormat类处理时间

Day025 SimpleDateFormat类