时间格式最终会在生产中发生变化

Time format ends up changing in production

我有以下代码以特定格式获取当前时间。当我在我的笔记本电脑上测试它时,它在本地工作得很好。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS z");
ZonedDateTime date = ZonedDateTime.now();
String timeStamp = formatter.format(date);

以上在本地有效,时间戳值采用以下格式: 2020-02-24 05:23:20.675 MST

但是当我将其推送到生产环境时,格式变为如下: 2020-02-24 05:23:20.675 -07:00

我无权访问生产设置,处理它的团队在另一个时区,现在无法获取它们。相信这是他们的一些设置,但有什么我可以做的,格式总是这样:2020-02-24 05:23:20.675 MST?

请指教,谢谢。

您必须指定您的时区,在生产中您使用的时区似乎与本地时区不同。除了在您的代码中,您没有指定任何区域,因为它采用了默认区域。

要解决这个问题,您必须指定区域:

ZoneId zoneId = ZoneId.of("America/Dawson_Creek"); // specify the zone you want to use
ZonedDateTime date = ZonedDateTime.now(zoneId);