Estoy haciendo una aplicación en la que tengo un método de utilidades que convierte una Date en String, pero a la hora de poner la aplicación en otro idioma tengo problemas...
Este es el método que convierte la fecha en cadena de texto:
Código Java:
Ver original
getDateFormat().applyLocalizedPattern(formato); return getDateFormat().format(fecha); } } }; }
El problema es que cuando el idioma es otro que no sea Español o Inglés (por ejemplo Catalán: ca_ES) y le indico que el formato de la fecha sea dd/MM/yyyy me lanza la siguiente excepción:
Código Java:
Ver original
at es.novasoft.nfc.comun.utilidades.NFCFecha.dateToString(NFCFecha.java:751) at es.novasoft.nfc.comun.utilidades.NFCFecha.dateToString(NFCFecha.java:737) at es.novasoft.nfc.comun.utilidades.NFCFecha.hoyTexto(NFCFecha.java:484) at com.csc.health.vacc.cliente.paneles.estadisticas.ListadosFiltroControlador.inicializa(ListadosFiltroControlador.java:267) at com.csc.health.vacc.cliente.paneles.estadisticas.ListadosFiltroControlador.cargarDatos(ListadosFiltroControlador.java:1000) at com.csc.health.vacc.cliente.paneles.Ventana$10.construct(Ventana.java:755) at es.novasoft.nfc.cliente.utilidades.NFCSwingWorker$2.run(NFCSwingWorker.java:110)
Al parecer esto es porque lo caracteres establecidos en DateFormatSymbols.getLocalPatternChars() son distintos para cada Locale.
Una posible solución sería establecer, siempre que llame a este método, los caracteres que tiene el Locale español (getDateFormat().getDateFormatSymbols().setLocalPa tternChars("GyMdkHmsSEDFwWahKzZ")),
pero esto no me parece correcto.
¿Hay alguna forma, independientemente del Locale establecido, en que yo le pase el formato dd/MM/yyyy y el lo comprenda?
He visto en alguna web la manera de obtener el "Localized Pattern", así:
Código Java:
Ver original
final String localizatedPattern = ((SimpleDateFormat) dateInstance).toLocalizedPattern(); //para ca_ES sería tt/MM/uu } return getDateFormat().format(adFecha);
El problema de esto es que me tengo que ceñir a las constantes de DateFormat para el formato. Por eso como comento más ariiba lo que me gustaría conseguir es que yo le indicase la cadena dd/MM/yyyy y el me devolviera tt/MM/uuuu (en el caso de ca_ES).
¿Alguien ha tenido este problema?
Gracias y Saludos!