Domanda

Nella mia applicazione sto usando codice come questo:

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

per formattare le date in un'applicazione che viene utilizzato in diversi locali. Mi piacerebbe, a volte, aggiungere secondi per questo, ma io non voglio specificare solo un formato specifico utilizzando il SimpleDateFormat come avrei sciolto il potere della formattazione base locale.

Quindi, qualcuno ha qualche idea di come fare una piccola modifica della data di locale-formattato?

Saluti,

Chris

È stato utile?

Soluzione

L'unica soluzione straight-forward che ho trovato è con 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();

Questa è trovare la posizione del campo dei minuti nella stringa allora che mi permette di aggiungere i secondi subito dopo di esso. Gli unici veri problemi che posso vedere con questo, oltre ad esso che è un po 'brutto, è che ":" Non potrebbe essere il separatore corretto e potrebbe già avere secondi in esso. Così chiunque può vedere una risposta migliore?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top