Estoy ejecutando mi aplicación Java en una máquina con Windows 7 donde mi configuración regional está configurada para dar formato a fechas como YYYY-mm-dd y hora como HH : mm: ss (por ejemplo, "2011-06-20 07:50:28"). Pero cuando uso DateFormat.getDateTimeInstance().format
para formatear mi fecha, no veo que en su lugar recibo "20-jun-2011 7:50:28 AM". ¿Qué debo hacer para formatear las fechas en la forma en que mis clientes tienen configurada su sistema operativo para mostrar las fechas?Cómo puedo configurar el formato de fecha y hora en Java que respeta la configuración del sistema operativo del usuario
Aquí es lo que mi código en cuestión es así:
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));
}
Los Messages.getFormattedString
llamadas están utilizando MessageFormat
para poner la fecha en una frase que se verá así:
Jugar la vuelta ' QB Nat vs Ian 008 '(recibido 20-jun-2011 7:50:28 AM)
Sin embargo, mi configuración de SO está configurada para formatear la fecha como He descrito anteriormente y que esperaba ver esto:
Jugar la vuelta 'QB Nat vs Ian 008' (recibió 2011-06-20 07:50:28)
busqué aquí y otra Los sitios de programación de Java y no pude encontrar la respuesta, pero esto parece algo tan obvio que quiero hacer que siento que me falta algo obvio.
Para obtener una aclaración, intento obtener el formato de fecha y hora especificado por la configuración del sistema operativo de mis clientes. Muchas personas, incluido yo mismo, modificamos la configuración de fecha, hora y moneda de los valores predeterminados de la configuración regional. No quiero simplemente obtener lo que alguien en Oracle cosas es la forma en que las fechas deben formatearse para una configuración regional particular. Quiero el formato que mis clientes han establecido en su sistema operativo. Espero que mi solicitud sea más clara. –
Es realmente molesto que mi implementación en C pueda hacerlo, pero no Java. 'strftime ("% c ")' con locale '" "' funciona a la perfección. – aib