Разное значение при форматировании даты в строку на разных машинах.
Calendar date = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
sdf.setTimeZone(TimeZone.getTimeZone("GMT+03:00"));
sdf.format(date.getTime());
yyyy-MM-dd'T'HH:mm:ssXXX должен вернуть дату в виде String, где XXX будет +TimeZone, то есть +03:00
На одной машине получается правильный результат 2018-06-08T13:47:16+03:00
, а на другой - неправильный 2018-06-08T13:47:16Z
.
Кто может подсказать в чем причина?
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
Давным-давно я как-то касался подобного вопроса, там проблема была в том, что timezone
в Windows была какая то кривая.
Исправлялось просто:
TimeZone tz=TimeZone.getTimeZone("GMT+03"); //вместо GMT+03:00
Да и проверьте списки TimeZone.getAvailableIds(3*60*60*1000)
на разных машинах они будут другие (берется из ОС)
Поскольку Вы используете java 8, я бы посоветовал попробовать использовать API, который предоставляет уже сама JDK в пакете java.time. Как мне кажется это более нативный подход. Попробуйте использовать вот этот код:
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
ZonedDateTime.now().format(formatter);
Надеюсь это решит Вашу проблему, пусть и не даст ответ на вопрос, почему не работает Ваш вариант.
Имеется ли в phpStorm возможность автоматической минимизации HTML файла, как это позволяет делать плагин «YUI Compressor JS»/CSS»?