У меня возникла проблема с форматированием даты с использованием Java. Форматирование даты, похоже, анализирует мою строку, используя BST (британское летнее время), а не GMT + 0, как определено +0000 в строке dateStr в приведенном ниже коде.Дата форматирования в Java
String dateStr = "Tue Oct 02 01:06:00 +0000 2012";
DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy");
Date date = df.parse(dateStr);
// Test the date
System.out.println(date.toString());
Когда я запускаю приведенный выше код я получаю:
Tue Oct 02 02:06:00 BST 2012
Который, очевидно, не то, что я хочу. Полезным источником информации может быть, что, когда я запускаю следующее:
System.out.println(TimeZone.getDefault().getDisplayName());
я получаю:
Greenwich Mean Time
Выход я пытаюсь получить это
Tue Oct 02 01:06:00 GMT 2012
Я уже пробовал .setTimeZone на df, но безрезультатно.
Вы имели в виду GMT в ожидаемом выводе? Вы сказали, что BST, похоже, противоречит вашей дискуссии. –
Woops. Да! Отредактировал его. –