online library forpattern example datetimeformat create java jodatime

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);