【问题标题】:Thread safety of android default date time formatting?android默认日期时间格式的线程安全?
【发布时间】:2011-12-25 20:02:00
【问题描述】:

我想知道使用它是否线程安全

 DateFormat dateFormat =android.text.format.DateFormat.getDateFormat(getApplicationContext());

我很清楚 DateFormat 对象不是线程安全的,但之前的 sn-p 似乎是编写 android 程序的流行方式,例如How do you format date and time in Android?,我没有注意到线程问题的任何提及。

【问题讨论】:

  • @Peter 请记住,返回的方法值是 DateFormat,而不是 SimpleDate 格式。如果你能证明这个实现确实是 SimpleDateFormat,我认为这个话题已经解决了。
  • 你是对的。我的错。在下面发布了答案。

标签: android thread-safety date-format


【解决方案1】:

android.text.format.DateFormat 是它自己的功能和java.text.SimpleDateFormat 的混合体。自己看:http://www.google.com/codesearch#cZwlSNS7aEw/frameworks/base/core/java/android/text/format/DateFormat.java

据我所知,format(..) 方法不使用 SimpleDateFormat 也不使用任何实例字段(仅读取一些静态字段),因此它们应该是线程安全的。

【讨论】:

  • 我会接受这个答案作为正确答案,因为源代码提供了所有必要的信息。然而,我发现由此产生的行为令人担忧,一方面format 方法是线程安全的;但是getDateFormat 返回SimpleDateFormat 的新实例,这不是线程安全的。 Java 文档信息没有提到线程。
猜你喜欢
  • 2013-05-09
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多