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

时间:2015-07-24 01:16:03

标签: java android date

我目前正在为Android制作应用程序,但我不确定哪个类最适合使用。

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

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

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

非常感谢任何帮助。 ^^

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

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

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

1 个答案:

答案 0 :(得分: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的新文件。这里的代码段MyApplication

  • 更新AndroidManifest.xml <application>代码:在<application下方添加此行:android:name=".MyApplication"

  • 运行您的应用。