Kann ich DateFormat.SHORT verändern ähnliche Sekunden oder etwas aufzunehmen?

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

  •  12-09-2019
  •  | 
  •  

Frage

In meiner Anwendung verwende ich Code wie folgt:

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

, um Datum- in einer Anwendung, die auf verschiedenen Schauplätzen verwendet wird. Ich mag manchmal fügen Sekunden diese aber ich will nicht nur auf ein bestimmtes Format mit der Simple angeben, wie ich die Kraft der locale basierten Formatierung verlieren würde.

So bekam jemand irgendwelche Ideen, wie eine kleine Änderung mit dem Lokalisierungs-formatierte Datum machen?

Cheers,

Chris

War es hilfreich?

Lösung

Die einzige geradlinige Lösung, die ich gefunden habe, ist FieldPosition mit:

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();

Dies ist das Finden der Position des Minutenfeld in der Zeichenfolge dann erlaubt mir die Sekunden direkt nach dem es hinzuzufügen. Die einzigen wirklichen Probleme, die ich mit diesem sehen kann, außer es ist ein bisschen hässlich zu sein, ist, dass „:“ vielleicht nicht die richtigen Trennzeichen sein, und es könnte schon Sekunden in ihm. So kann jemand eine bessere Antwort sehen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top