首页 > 解决方案 > 时间格式最终在生产中发生变化

问题描述

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

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 吗?

请指教,谢谢。

标签: javadatejava-8java-time

解决方案


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

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

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

推荐阅读