Puis-je modifier DateFormat.SHORT inclure quelques secondes ou quelque chose de similaire?
-
12-09-2019 - |
Question
Dans ma demande, je suis en utilisant le code comme ceci:
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
String s = df.format(d);
aux dates de format dans une application qui est utilisé dans différents endroits. Je voudrais, parfois, ajouter des secondes à cela, mais je ne veux pas simplement spécifier un format spécifique en utilisant l'SimpleDateFormat que je perdrais la puissance de la mise en forme en fonction des paramètres régionaux.
Alors, tout le monde a des idées comment faire un changement mineur à la date formatée locale-?
Cheers,
Chris
La solution
La seule solution droite avant que j'ai trouvé utilise 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();
est de trouver la position du champ minute dans la chaîne puis me permettre d'ajouter les secondes directement après. Les seuls problèmes réels je peux voir avec cela, en dehors du fait qu'elle est un peu laid, est que « : » peut-être pas le séparateur correct et il pourrait déjà avoir secondes en elle. Ainsi peut-on voir une meilleure réponse?