0

在我们的应用程序中格式化本地时间时,我们以前在 .NET 上遇到过这个错误: .NET (3.5) 使用点而不是冒号来格式化时间作为 IT 文化的 TimeSeparator?这在 .NET 4.0 中已修复。

当我们测试本地时间的 Android 格式时,我们在挪威语言环境中得到相同的错误,我们得到的时间为“21.00”,而我们在挪威使用时间段,所以它应该是“21:00”。

DateFormat tf = android.text.format.DateFormat.getTimeFormat(m_activity);

当我测试它时,这发生在 Android 4.2 和 4.0.4 上。这也是bug吗?

而且我看到 Android 在英国也使用 AM/PM,这也有点“不标准”? 使用 en_GB 语言环境格式化时间在 Android 和标准 Java 中给出不同的结果

4

2 回答 2

0

为什么不用http://docs.oracle.com/javase/1.4.2/docs/api/java/text/NumberFormat.html自己格式化呢?

显然,在你从谷歌得到明确的答复之前,你不会知道它是一个功能还是一个错误,即使它确实得到了确认——天知道它什么时候会得到修复。他们仍然有 2009 年的未决错误!

我建议您使用 NumberFormat 进行“临时”解决方法来解析某些 DateFormat 输出并以这种方式“标准化”它们。节拍等待谷歌解决这个问题:)

于 2012-12-29T23:06:48.530 回答
0

谷歌工程师的回答: http ://code.google.com/p/android/issues/detail?id=42104

“像往常一样,我的建议是不要使用 android.text.format.DateFormat。如果你使用 java.text.DateFormat,它将使用 CLDR 中的格式。

问题在于它不会尊重用户的 12/24 小时偏好。我正在努力尝试将这些信息传递到 libcore,以便我们可以做正确的事情。(然后我们可以将 frameworks/base 中的重复 API 切换到使用 libcore 实现。)”

于 2012-12-30T21:33:25.410 回答