library - jodatime java 8
JodaTime DateTime, ISO8601 formato de fecha GMT (4)
@jgm En el documento, se describe ISODateTimeFormat.dateTime()
Devuelve un formateador que combina una fecha y hora completas, separadas por una ''T'' (aaaa-MM-dd''T''HH: mm: ss.SSSZZ).
pero si establece la zona horaria, por ejemplo,
DateTimeFormatter fmt = ISODateTimeFormat.dateTime();
System.out.println(fmt.print(new DateTime().toDateTime(DateTimeZone.UTC)));
terminará en Z.
¿Cómo puedo obtener el siguiente formato?
2015-01-31T00:00:00Z
(Formato de fecha GMT ISO8601)
¿Fuera de un objeto DateTime en tiempo joda (java)? P.ej.
DateTime time = DateTime.now();
String str = // Get something like 2012-02-07T00:00:00Z
¡Gracias! :)
Configurar un DateTimeFormatter
:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd''T''HH:mm:ssZ");
formatter.print(time);
El Javadoc JODA indica que toString
for DateTime
genera la fecha en ISO8601. Si necesita que todos los campos de tiempo estén en cero, haga lo siguiente:
final DateTime today = new DateTime().withTime(0, 0, 0, 0);
System.out.println(today);
Eso incluirá milisegundos en la cadena de salida. Para deshacerte de ellos, deberías usar el formateador que @jgm sugiere aquí.
Si desea que coincida con el formato que solicita en esta publicación (con el carácter Z
literal), esto funcionaría:
System.out.println(today.toString(DateTimeFormat.forPattern("yyyy-MM-dd''T''HH:mm:ss''Z''")));
Si necesita que el valor sea UTC, inicialícelo así:
final DateTime today = new DateTime().withZone(DateTimeZone.UTC).withTime(0, 0, 0, 0);
utilizar ISODateTimeFormat
DateTime dt = new DateTime();
DateTimeFormatter fmt = ISODateTimeFormat.dateTimeNoMillis();
String str = fmt.print(dt);