Comment puis-je obtenir le format suivant:
2015-01-31T00:00:00Z
(Format de date ISO8601 GMT)
Vous sortez d'un objet DateTime en temps joda (Java)? Par exemple.
DateTime time = DateTime.now();
String str = // Get something like 2012-02-07T00:00:00Z
Merci! :)
Le JODA Javadoc indique que toString
pour DateTime
renvoie la date en ISO8601. Si vous devez réinitialiser tous les champs horaires, procédez comme suit:
final DateTime today = new DateTime().withTime(0, 0, 0, 0);
System.out.println(today);
Cela inclura des millisecondes dans la chaîne de sortie. Pour vous en débarrasser, vous devez utiliser le formateur que @jgm suggère ici.
Si vous voulez qu'il corresponde au format que vous demandez dans cet article (avec le caractère littéral Z
) cela fonctionnerait:
System.out.println(today.toString(DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'")));
Si vous avez besoin que la valeur soit UTC, initialisez-la comme ceci:
final DateTime today = new DateTime().withZone(DateTimeZone.UTC).withTime(0, 0, 0, 0);
@jgm Dans le document, ISODateTimeFormat.dateTime()
est décrite
Renvoie un formateur qui combine une date et une heure complètes, séparées par un "T" (aaaa-MM-jj'T'HH: mm: ss.SSSZZ).
mais si vous définissez le fuseau horaire, par exemple,
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
System.out.println(fmt.print(new DateTime().toDateTime(DateTimeZone.UTC)));
il se terminera en Z.
utiliser ISODateTimeFormat
DateTime dt = new DateTime();
DateTimeFormatter fmt = ISODateTimeFormat.dateTimeNoMillis();
String str = fmt.print(dt);
Configurer un DateTimeFormatter
:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ");
formatter.print(time);