Последнее воскресенье мы меняем время (-1h) в средней Европе. Но я делал некоторые тесты, и что-то не так с парсером java time. Это кодJava получает UTC + 2, если это будет UTC + 1
public static void main(String[] args) {
String dateFormatPattern = "yyyy-MM-dd HH:mm:ss";
String dateUtc = "2016-10-09 12:50:00";
SimpleDateFormat dateFormatUtc = new SimpleDateFormat(dateFormatPattern);
dateFormatUtc.setTimeZone(TimeZone.getTimeZone("UTC"));
SimpleDateFormat dateFormatLisboa = new SimpleDateFormat(dateFormatPattern);
dateFormatLisboa.setTimeZone(TimeZone.getTimeZone("Europe/Lisboa"));
SimpleDateFormat dateFormatMadrid = new SimpleDateFormat(dateFormatPattern);
dateFormatMadrid.setTimeZone(TimeZone.getTimeZone("Europe/Madrid"));
SimpleDateFormat dateFormatParis = new SimpleDateFormat(dateFormatPattern);
dateFormatParis.setTimeZone(TimeZone.getTimeZone("Europe/Paris"));
System.out.println("UTC: "+dateUtc);
try {
Date d = dateFormatUtc.parse(dateUtc);
System.out.println("Lisboa: "+dateFormatLisboa.format(d));
System.out.println("Madrid: "+dateFormatMadrid.format(d));
System.out.println("Paris: "+dateFormatParis.format(d));
} catch (ParseException e) {
e.printStackTrace();
}
}
И это выход
UTC: 2016-10-09 12:50:00
Lisboa: 2016-10-09 12:50:00
Madrid: 2016-10-09 14:50:00
Paris: 2016-10-09 14:50:00
Почему разница между временем по Гринвичу и Мадридского время 2 часа? Сейчас в Мадриде есть UTC + 1.
Спасибо.
Какая дата изменилась? Что произойдет, если вы выполните 'String dateUtc =" 2016-11-02 12:50:00 ";'? – Ash
Спасибо, ты прав. Я был слеп с изменением времени, и я не понимал, что дата начала была раньше :( –
Не стоит беспокоиться, ее классика, нуждающаяся в еще одной паре глаз, вещь. Я так решил, просто позвонив кому-нибудь посмотреть на вещи – Ash