Как установить форматирование даты и времени в Java с учетом настроек ОС пользователя

Я запускаю свое Java-приложение на машине с Windows 7, где в моих региональных настройках задано форматирование дат в формате ГГГГ-мм-дд и времени в формате ЧЧ: мм: сс (например, " 2011-06-20 07:50:28 "). Но когда я использую DateFormat.getDateTimeInstance (). Format для форматирования даты, я не вижу, что вместо этого я получаю« 20 июня 2011 г. 7:50:28 AM ». Что мне делать нужно сделать, чтобы отформатировать даты так, как мои клиенты настроили свои ОС для отображения дат?

Вот как выглядит мой рассматриваемый код:

File selGameLastTurnFile = selectedGame.getLastTurn ().getTurnFile ();
Date selGameModifiedDate = new Date (selGameLastTurnFile.lastModified());
if (selectedGame.isYourTurn ())  {
    gameInfo = Messages.getFormattedString ("WhoseTurnIsIt.Prompt.PlayTurn",  //$NON-NLS-1$
            FileHelper.getFileName (selGameLastTurnFile), 
            DateFormat.getDateTimeInstance().format(selGameModifiedDate));
}  else  {
    gameInfo = Messages.getFormattedString ("WhoseTurnIsIt.Prompt.SentTurn",  //$NON-NLS-1$
            selGameLastTurnFile.getName (), 
            DateFormat.getDateTimeInstance().format(selGameModifiedDate));
}

Вызовы Messages.getFormattedString используют MessageFormat , чтобы поместить дату в предложение, которое будет выглядеть следующим образом:

Воспроизвести ход «QB Nat vs Ian 008» (получено 20 июня 2011 г. 7:50:28 AM)

Однако мои настройки ОС настроены на форматирование даты, как я описал выше, и я ожидал увидеть это:

Проиграть ход «QB Nat vs Ian 008» (получено 2011-06-20 07:50:28)

I искал здесь и на других сайтах, посвященных программированию на Java, и не смог найти ответ, но это кажется настолько очевидным, что я чувствую, что упускаю что-то очевидное.

13
задан assylias 17 June 2016 в 10:26
поделиться