Pregunta

En mi solicitud estoy usando código como este:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
String s = df.format(d);

para las fechas de formato en una aplicación que se utilizan en diferentes lugares. Me gustaría, a veces, añadir segundos para esto, pero yo no quiero sólo tiene que especificar un formato concreto utilizando la SimpleDateFormat como me gustaría perder el poder del formato basado en la configuración regional.

Por lo tanto, cualquier persona tiene alguna idea de cómo hacer un pequeño cambio en la fecha del local con formato?

Saludos,

Chris

¿Fue útil?

Solución

La solución única recta de avance que he encontrado es el uso de FieldPosition:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
StringBuffer sb = new StringBuffer();
FieldPosition fp = new FieldPosition(DateFormat.MINUTE_FIELD);
sb = df.format(d, sb, fp);
sb.insert( fp.getEndIndex(), new SimpleDateFormat(":ss").format(d) );
String s = sb.toString();

Esta es encontrar la posición de la posición de los minutos en la cadena a continuación, lo que me permite añadir el segundo inmediatamente después de ella. Los únicos problemas reales que pueden ver con esto, aparte de que es un poco feo, es que ":" Puede que no sea el separador correcto y que ya podría tener segundos en ella. Entonces, ¿puede alguien ver una mejor respuesta?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top