Текущее время Java на 2 часа опережает время моей системы
Я использую следующий код Java, чтобы получить текущую дату и время:
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date));
System.out.println(timeFormat.format(date));
Выходное время всегда на 2 часа опережает системное время или часовой пояс. Например, если приведенный выше код выводит следующее время:11:44:43
Тогда время моей системы:09:44:43
Пожалуйста, помогите мне решить эту проблему!
2 ответа
Попробуй это:
DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
TimeZone tz = TimeZone.getDefault();
Calendar c = Calendar.getInstance(tz);
Date date = c.getTime();
System.out.println(timeFormat.format(date));
Если это не работает, попробуйте изменить часовой пояс. Взгляни на TimeZone.getTimeZone(String id)
,
Ваша проблема - часовой пояс
для опыта
этот код для андроида.
изменить часовой пояс приложения.
потому что Android часовой пояс по умолчанию "UTC"
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));