web-dev-qa-db-fra.com

Chaîne ISO 8601 en objet Date / Heure dans Android

J'ai une chaîne au format standard ISO 8601 qui contient la date/heure renvoyée par un service Web comme ceci:

String dtStart = "2010-10-15T09:27:37Z"

Comment insérer ceci dans un objet tel que l'heure ou la date? Je veux d'abord le sortir dans un format différent, mais je devrai faire d'autres choses avec lui plus tard (c'est-à-dire peut-être utiliser dans un format différent).

À votre santé

46
neildeadman
String dtStart = "2010-10-15T09:27:37Z";  
SimpleDateFormat  format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");  
try {  
    Date date = format.parse(dtStart);  
    System.out.println(date);  
} catch (ParseException e) {  
    // TODO Auto-generated catch block  
    e.printStackTrace();  
}

Voilà ce que vous recherchez. Il y a article existant à propos de ce problème.

117
Seitaridis

Cette question a été posée en 2010, et à l'époque, il était correct que SimpleDateFormat ou Joda-Time soient les outils que vous devriez utiliser. Ça fait un bon moment maintenant. Utilisation aujourd'hui

    Instant iStart = Instant.parse(dtStart);

Oui, c'est aussi simple que cela. Votre chaîne est au format ISO 8601 et les classes de Java.time, le moderne Java API date et heure, analyse ISO 8601 sans formateur explicite. Instant n'est qu'une de ces classes.

Question: Puis-je utiliser Java.time sur Android?

Oui, Java.time fonctionne bien sur les appareils anciens et récents Android appareils. Il nécessite au moins Java 6 .

  • Dans Java 8 et versions ultérieures et plus récentes Android (à partir du niveau 26 de l'API, me dit-on)), l'API moderne est intégrée.
  • Dans Java 6 et 7, obtenez le ThreeTen Backport, le backport des nouvelles classes (ThreeTen pour JSR 310; voir les liens en bas).
  • Le (plus ancien) Android utilisez l'édition Android édition de ThreeTen Backport. Il s'appelle ThreeTenABP. Et assurez-vous d'importer les classes de date et d'heure de org.threeten.bp avec sous-packages.

Liens

6
Ole V.V.

Vous pouvez utiliser méthode d'analyse SimpleDateFormat de Java ou utiliser DateTimeFormat de JodaTime pour créer un DateTimeFormatter et analyser un objet DateTime en conséquence

2
Jeroen Rosenberg