Пожалуйста, смотрите мой код, как показано ниже:Java Calendar.getInstance() изменение часового пояса по умолчанию в Linux
SimpleDateFormat sd = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
sd.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sd.format(calendar.getTime()));
Часовой пояс по умолчанию
Моя система в Windows является EDT в этот момент и время, когда я побежал этот код (28/09/2016 12:27 вечера), и когда я запускаю этот код в системе вывода я получаю, как показано ниже - который предназначен (EDT по Гринвичу Conversion):
28/09/2016 04:00:00
Но когда я запускаю это на сервере (Выпуск Red Hat Enterprise Linux Server версии 5.11), я получаю следующее:
28/09/2016 00:00:00
Когда я побежал следующую команду в Linux оболочку
date +%Z
Он вернулся ниже выхода
EDT
Таким образом, я не могу понять, почему преобразование не произошло. Кроме того, у меня есть кусок кода, как показано ниже:
SimpleDateFormat sd = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Calendar calendar = Calendar.getInstance();
sd.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(sd.format(calendar.getTime()));
, которые возвращали ниже выхода (побежал на 28/09/2016 12:36 PM) в том же Linux Server с предполагаемым выходом, который превращает его в GMT
28/09/2016 16:36:46
Этот код является частью приложения J2EE, работающего на WebLogic 12c. Поделитесь, если у вас есть какие-либо подсказки, что могло бы вызвать вышеупомянутый сценарий. Благодарю.
Если я правильно помню, есть установка в startWeblogic (или аналогичный, это было несколько лет с тех пор я использовал WebLogic), чтобы переопределить систему часовой пояс и использовать GMT (по умолчанию). Вы можете проверить это, зарегистрировав 'Calendar.getInstance(). GetTimeZone(). ToString()' где-то. –
@ElliottFrisch Я проверил это, и он вернул GMT, но я не уверен, как работает второй кусок кода, он не должен его преобразовывать. –
Невозможно воспроизвести проблему с предоставленным кодом. Вы показываете нам настоящий код или код, похожий на реальный код? –