当我在 DateFormat 上设置“HH:mm:ss”时,在极少数情况下我会得到“22:42:31 AM”。 ` AM` 出乎意料。我该如何解决?

When I set `HH:mm:ss` on DateFormat, I get `22:42:31 AM` in rare case. ` AM` is unexpected. How can I fix it?

我发布了一个全局应用程序。 我在日志中发现了一个奇怪的格式时间戳。 很少有低于 1% 的情况,我找不到条件。 你知道我是怎么解决的吗?

A代表"Milliseconds in day"。它与您想要的小数秒不同。为此,请使用 S.

ZZZZZ 给出格式如 -08:00 的时区。由于您希望实际的 Z 出现在输出中以表示祖鲁时间,因此请使用 XX 与设置为距格林威治标准时间 0 秒的时区相结合,在输出中产生 Z

以上是假设你想要输出的.22220430都是小数秒

您的最终格式应为 yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSX

并且您还必须将格式化程序的语言环境设置为 en_US_POSIX。使用 dateFormat 时应始终使用该语言环境,以确保用户首选项不会导致意外结果。

另请注意,您不会真正获得小数秒的 8 位有效数字。任何超过三个 S 的东西都可能毫无意义。