关于java:Android日期时间操作库

Android date-time manipulation library

从C开始,我习惯了灵活的接口DateTimeTimeSpan的报价。通过这些,我可以访问日期时间部分(年、月、秒等)、基础刻度、减去日期、添加时间增量等。

作为Java/Android NexBee,我理解等价的Java EDCOX1(2)类使用了这些访问器,但由于兼容性原因,它们被删除了。建议的替代方法是使用Calendar对象,但与.NET相比,它的接口比较麻烦。

是否有一个等价的Java库来简化Android中EDCOX1 2个对象的操作?


您可以使用JoDA时间,它是一个外部的库,日期和日历是基本的API提供的,Java 8为日期时间添加了更好的API,但是对于Android,现在您可以使用JoDaTIEM。


Java.时间

其他答案都过时了。

Joda时间框架是一项非常成功和出色的工作。然而,由Stephen Colbourne领导的创建者进行了完整的改写和重新设计,以生成JavaTimeFramework,该框架构建到Java 8和更高版本中。

Java.TimeActudio的许多功能已经被移植到TeLeTeN后端项目中的Java 6和7中。这项工作在三人行项目中进一步适应了Android。

佐达时间继续保持。但是团队建议我们在方便的时候尽快迁移到java.time。未来的创新工作将进入java.time,并在threeten额外项目中进行扩展。

我建议在新代码中尝试java.time。不需要删除Joda时间。这两个框架可以共存于您的项目中。注意您的import语句,因为两个框架之间有一些类共享一个名称。稍后,一旦熟悉java.time,就可以考虑重新访问旧代码以逐步停止使用joda time。

ZonedDateTime

ZonedDateTime类。它有你要求的方法,getYeargetHour等等。

时间跨度

有关未附加到时间线的时间跨度,请参见PeriodDuration类。各种日期时间类都有添加或减去这些对象的数学方法。

额外三

threeten额外的库用更多方便的类扩展java.time。


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

https://github.com/jakewharton/threetenabp

原因如下:

Why not use Joda-Time? Joda-Time has a very large API which brings
with it a very large binary size and large method count. The creator
of both JSR-310 and Joda-Time has also said that while Joda-Time isn't
broken, it does have design flaws.

If you are using Joda-Time already, there's little reason to switch
unless its size or method count is relevant to you. For new projects,
however, this library offers the standard APIs in Java 8 as a much
smaller package in not only binary size and method count, but also in
API size.


我只是想提供一个更新的答案。

还有Joda Time Android"一个考虑到Android的Joda Time版本"。杰克·沃顿有自己的图书馆。你可能想看看。


对Jigar Joshi的答案进行改进后,您可以使用Joda Time Android,这是一个专为Android设备优化的特定于Android的Joda Time端口。