icancode.de

ISO 8601 String zu Date konvertieren

Einleitung

Rico Magnucki

Rico Magnucki

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.


Neuste Artikel

HP Deskjet 3636 – Multitalent zum schmalen Preis 09th April, 2017

NETGEAR AC1750 Smart WLAN-Router im Test 10th January, 2016

Android

ISO 8601 String zu Date konvertieren

Veröffentlicht am .

ISO 8601 ist ein internationaler Standard der ISO, der Empfehlungen über numerische Datumsformate und Zeitangaben enthält. (Wikipedia)

In einem Timestamp im ISO 8601 Format können alle wichtigen Informationen gespeichert werden. Leider kann das kein Mensch lesen – oder sagen wir einfach lesen.

ISO 8601

Normalerweise bekommt man einen ISO 8601 Timestamp als String – generell schon eine großartige Idee. Nicht.

String dateString = "2015-08-31T12:43:33.996+0200"

Wie ist der String jetzt aufgebaut?

  • Datum im Format yyyy-MM-dd
  • Trennzeichen für die Zeit T
  • Uhrzeit im Format HH:mm:ss
  • UTC Anhang .SSSZ

Das gesamte Format sieht dann so aus: yyyy-MM-dd'T'HH:mm:ss.SSSZ

ISO 8601 XKCD

Konvertieren

Angenommen, wir haben irgendwo eine Variable mit dem Namen date, die das Datum im ISO 8601 Format hält. Dieses Datum wollen wir jetzt im Format 16:15 01.09.2015 – also HH:mm dd.MM.yyyy – haben.

  public String getHumanReadableDate() {
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
    try {
      Date unformatedDate = format.parse(date);
      String formatedDate = new SimpleDateFormat("HH:mm dd.MM.yyyy")
                                .format(unformatedDate);
      return formatedDate;
    } catch (ParseException e){
      Log.e(TAG, "getDate " + e.getMessage());
    }
    return date;
  }

Ohne Exception geht es natürlich nicht. Als try catch Block drum und auf geht. Da ich das im Android System benutze, verwende ich für den catch Block Log.e(). Sollte irgendwas schief gehen, wird der Ursprungsstring im ISO 8601 Format zurückgegeben.

Bildquelle: xkcd.com

Rico Magnucki

Rico Magnucki

http://magnucki.de

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.

Navigation