Frage

Früher habe ich geschrieben, die folgende Frage: Wie kann ich dieses Datum konvertieren in Java?

Aber jetzt würde Ich mag wissen, wie ich diese Zeichenfolge in ein Datum / Uhrzeit umwandeln kann.

2010-03-15T16:34:46Z

Zum Beispiel: 03/15/10

AKTUALISIERT:

String pattern = "MM/dd/yy 'at' HH:mm";
                Date date = new Date();
                try {
                    date = new SimpleDateFormat(pattern).parse(q.getUpdated_at());
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));

Gibt mir ein Ergebnis wie:

Mon Mar 15 16:34:50 MST 2010

Wie kann ich es formatiert sein

03/15/10 at 4:34PM

War es hilfreich?

Lösung

Auf dem Punkt gebracht, mögen Sie ein Datum konvertieren in string Format zu einem Datum in andere string Format . Sie haben:

2010-03-15T16:34:46Z

und Sie möchten

03/15/10 at 4:34PM

Sie wollen nicht mit am Ende java.util.Date Objekt, wie Sie zunächst in Ihrer Frage implizieren. Sie wollen ja auch nicht da, dass die Renditen ihre toString() verwenden, um ein festes Format wie definiertem in seine javadoc .

Die Antwort von Bozho gilt nach wie vor. Verwenden Sie java.text.SimpleDateFormat . Zuerst müssen Sie auf Parst das Datum im String-Format in ein Date Objekt, so dass Sie Format es zurück in einer anderen Zeichenfolge-Format.

// First parse string in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" to date object.
String dateString1 = "2010-03-15T16:34:46Z";
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(dateString1);

// Then format date object to string in pattern "MM/dd/yy 'at' h:mma".
String dateString2 = new SimpleDateFormat("MM/dd/yy 'at' h:mma").format(date);
System.out.println(dateString2); // 03/15/10 at 4:34PM

Andere Tipps

Sowohl SimpleDateFormat und joda Zeit DateTimeFormat diese analysieren kann, mit diesem Muster:

String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";

Zum Beispiel:

Date date = new SimpleDateFormat(pattern).parse(dateString);

Und (joda Zeit):

DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
DateTime dateTime = dtf.parseDateTime(s);

Aktualisieren

Sie haben 2 Datumsformate beteiligt - eine für Analyse die Eingabe und eine für Formatierung die Ausgabe. Also:

dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));

(Natürlich aus Gründen der Optimierung können Sie die SimpleDateFormat instanziiert nur einmal, und wieder verwenden)

Wenn Sie wollen Format Ausgabezeichenfolge, Änderung im Code folgende Zeile

dateText.setText(date.toString());

dateText.setText(String.format("%1$tm/%1$td/%1$ty at %1$tl:%1$tM%1$Tp", date));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top