Puis-je modifier DateFormat.SHORT inclure quelques secondes ou quelque chose de similaire?

StackOverflow https://stackoverflow.com/questions/1846059

  •  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

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top