我应该在Android的Date中使用哪个类?

Lia*_*lly 7 java android date

我目前正在为Android制作应用程序,但我不确定哪个类实际上最好用.

我需要处理的是与我合作的日期,例如比较日期,获取它们之间的差异以及日期计算(例如添加/减去一小段时间,例如两周或一个月)任何给定的日期).

我知道Java API中的标准Date类很糟糕,所以我只是想知道推荐哪些类?

我见过GregorianCalendar类和Joda Time库.但是,我在帖子中读到,由于Joda Time库的大小,不建议用于应用程序.

任何帮助将非常感激.^^

编辑:根据404notfound的评论,我决定使用Calendar界面.这是由于Calendar界面根据用户设备的区域设置和时区自动使用它的最佳实现.这将使其在实现GregorianCalendar(或其他特定实现)方面更灵活,就可以将其推广到的地方而言.

希望这对任何有同样难题的人都有帮助!

编辑#2:在进一步查看NguyễnHoàiNam提供的链接后,我选择了ThreeTenABP库,因为它是Java 8中新的Time类的包装器,并且将证明其使用比使用更流畅.日历方法.

Ngu*_*Nam 8

我建议将ThreeTenABP库作为更好的替代方案(因为我已经迁移了类似的应用程序).该库是Android的ThreeTenBP的后端,后者又是最新Java 8的Date Time API(同一创建者)的Java 6的后端.(我建议您首先查看Java 8 Date Time API的优缺点.)请注意,ThreeTenBP提供了一些与Joda Time类似的动词,因此您不会很难迁移它们.最后,正如本文中所注意到的,方法计数,lib大小等在Android中始终是一个问题.这个lib解决了这个.

编辑添加使用指南.

  • 将此lib添加到build.gradle

    compile 'com.jakewharton.threetenabp:threetenabp:1.0.1'

  • 如果没有,请创建Application类.例如,您的包是:com.example.app,放置一个以MyApplication.java该包命名的新文件.Snippet在这里MyApplication.

  • 更新AndroidManifest.xml <application>标记:在以下位置添加以下行<application:android:name=".MyApplication"

  • 运行你的应用程序