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é
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.
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.
Oui, Java.time
fonctionne bien sur les appareils anciens et récents Android appareils. Il nécessite au moins Java 6 .
org.threeten.bp
avec sous-packages.Java.time
.Java.time
a été décrit pour la première fois.Java.time
à Java 6 et 7 (ThreeTen pour JSR-310).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