Android日期时间操作库

时间:2014-03-20 07:09:23

标签: java android date calendar

来自C#,我习惯了光滑的界面DateTimeTimeSpan。有了这些,我可以访问日期时间部分(年,月,秒等),基础蜱,减去日期,增加时间增量等。

作为一名Java / Android新手,我了解到等效的Java Date类过去常常使用这些访问器,但出于反向兼容的原因,它们已被删除。建议的替代方法是使用Calendar对象,但与.Net相比,我觉得它的界面很麻烦。

是否有一个等效的Java库来简化Android中Date个对象的操作?

5 个答案:

答案 0 :(得分:7)

你可以使用joda-time它是一个外部库,Date&日历是提供的基本API,使用java 8它为日期时间添加了更好的api但是对于Android现在你可以使用joda tiem

答案 1 :(得分:4)

java.time

其他答案已过时。

Joda-Time框架是一项非常成功和辉煌的工作。然而,由Stephen Colbourne领导的创建者完成了重写和重新设计,以生成Java 8及更高版本中内置的java.time框架。

许多java.time功能已经被反向移植到Java 6& ThreeTen-Backport项目中的7。这项工作进一步适用于ThreeTenABP项目中的Android。

Joda-Time继续保持。但团队建议我们尽快迁移到java.time。未来的创新工作将进入java.time及其在ThreeTen-Extra项目中的扩展。

我建议您在新代码中使用java.time。无需删除Joda-Time。两个框架都可以在您的项目中共存。请注意您的import语句,因为一些类在两个框架之间共享一个名称。稍后,一旦您熟悉java.time,您可以考虑重新访问旧代码以逐步淘汰Joda-Time的使用。

ZonedDateTime

请参阅ZonedDateTime课程。它有您要求的方法,getYeargetHour等。

时间跨度

对于未附加到时间轴的时间跨度,请参阅PeriodDuration类。各种日期时间类都有用于添加或减去此类对象的数学方法。

ThreeTen-EXTRA

ThreeTen-Extra库扩展了java.time以及更多方便的类。

答案 2 :(得分:3)

我建议使用这个库而不是Joda:

https://github.com/JakeWharton/ThreeTenABP

原因写在那里:

  

为什么不使用Joda-Time? Joda-Time有一个非常大的API带来   有一个非常大的二进制大小和大的方法计数。创造者   JSR-310和Joda-Time都表示虽然Joda-Time不是   它确实存在设计缺陷。

     

如果您已经使用Joda-Time,那么没有什么理由可以切换   除非其大小或方法计数与您相关。对于新项目,   但是,这个库提供了Java 8中的标准API   较小的包不仅包括二进制大小和方法计数,还包括   API大小。

答案 3 :(得分:1)

我只想提供更新的答案。

还有Joda-Time-Android“基于Android构建的Joda-Time版本”。 Jake Wharton拥有自己的图书馆ThreeTenABP。你可能想看一下。

答案 4 :(得分:0)

改进Jigar Joshi的答案,你可以使用joda-time-android,这是一个针对Android设备优化的joda-time的特定于android的端口。