android.text.format.DateFormat和java.text.DateFormat有什么区别

vir*_*sir 14 format android date

我在android上阅读了关于格式化日期的一些帖子,如下所示:

如何在Android中格式化日期和时间?

人建议使用android.text.format.DateFormat,而不是java.text.DateFormat,

在这里,它提到了在android中将日期转换为字符串时的问题:

Android加载时区太长:加载en_US的时区名称

我想知道android.text.format.DateFormat和之间的区别是什么java.text.DateFormat

ben*_*nkc 14

据我所知,它android.text.format.DateFormat具有一些功能java.text.DateFormat,一些功能java.text.SimpleDateFormat,以及它自己的一些额外功能.

最为显着地:

  • java SimpleDateFormat允许构造任意非本地化格式.
  • java DateFormat允许通过其工厂方法为日期和时间构建三种本地化格式.
  • android DateFormat允许上述大多数(任意格式和较少数量的本地化格式),但也提供了getBestDateTimePattern选择适合语言环境的格式字符串,其中包含使用适合语言环境的顺序和标点符号指定的元素.

因此,如果您需要除java的DateFormat类提供的三种以外的本地化日期/时间格式,那么android DateFormat类就是解决方案.

不太重要,但是额外的便利:android DateFormat方法可以直接采用Calendar或长毫秒,而不需要Date对象.我总是喜欢使用日历或长期使用日期.此外,它正确地尊重Calendar对象的时区 - 而从日历获取日期并将其传递给格式化程序会丢失时区信息.(没有什么是你无法通过java DateFormat的setCalendar方法解决的,但是没有必要这样做.)

最后,最重要的是,Android DateFormat的一些方法实际上并不构造格式化程序,只需构造一个格式字符串即可.所有这个类的方法都是静态的.构造DateFormat的方法确实构造了一个java DateFormat!

  • 这应该是公认的答案.它至少试图回答这个问题,而不是狡猾地链接到在线文档."阅读文档"不应该是一个公认的接受的答案. (8认同)

Mat*_*all -19

这里有一些自助怎么样?比较 API、阅读 JavaDocs 并亲自查看:

  • 一位智者曾经告诉我:_“给一个人生火,他会温暖一整夜。点燃一个人,他会温暖一生。”_ (18认同)