时间格式最终在生产中改变

问题描述 投票:3回答:1

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

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

请咨询,谢谢。

java date java-8 java-time
1个回答
6
投票

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

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

ZoneId zoneId = ZoneId.of("America/Dawson_Creek"); // specify the zone you want to use
ZonedDateTime date = ZonedDateTime.now(zoneId);
© www.soinside.com 2019 - 2024. All rights reserved.