Формат времени заканчивается изменением в производстве - PullRequest
3 голосов
/ 24 февраля 2020

У меня есть следующий код, который получает текущее время в определенном формате. Это прекрасно работает локально, когда я тестирую его на своем ноутбуке.

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

Но когда я пу sh это на производство, формат меняется на следующий: 2020-02-24 05: 23: 20.675 -07: 00

У меня нет доступа к настройкам производства, и команда, которая обрабатывает его, находится в другом часовом поясе и не сможет чтобы получить их сейчас. Полагаю, что это какой-то настрой на их конце, но могу ли я что-то сделать, чтобы формат всегда был таким: 2020-02-24 05: 23: 20.675 MST?

Пожалуйста, совет, спасибо.

1 Ответ

6 голосов
/ 24 февраля 2020

Вы должны указать свой часовой пояс, кажется, что в производстве вы используете другой часовой пояс, чем в местном. Кроме того, в вашем коде вы не указываете ни одной зоны, для этого требуется зона по умолчанию.

Чтобы решить эту проблему, вы должны указать зону:

ZoneId zoneId = ZoneId.of("America/Dawson_Creek"); // specify the zone you want to use
ZonedDateTime date = ZonedDateTime.now(zoneId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...