ISO 8601
Usar formato ISO 8601.
- Es flexible, que incluye segundos y fracción de segundo, si los hay, pero también se puede dejar fuera si son 0.
- Es normal, por lo que más y más herramientas de formato y analizarlo. Ideal para serialización para almacenamiento o intercambio de datos.
- Suena como
2009-10-22T21:13:14
, debería decir que es bastante legible por humanos (aunque el T
en el medio que denota el comienzo de la parte de tiempo puede parecer inusual al principio).
- Las cadenas separado la ropa adecuadamente, tal como se solicita en mikera another answer, siempre que los años están en el rango de cuatro dígitos desde 1000 a 9999.
- Las clases de
java.time
, la fecha de Java API moderna y tiempo, así como los de Joda Time analizan ISO 8601 como su valor predeterminado, es decir, sin ningún formateador explícito, y producen el mismo formato de sus métodos toString
.
Una modesta demostración de la utilización de java.time
:
LocalDateTime dateTime = LocalDateTime.of(2009, 10, 22, 21, 13, 14);
String readableString = dateTime.toString();
System.out.println(readableString);
LocalDateTime parsedBack = LocalDateTime.parse(readableString);
System.out.println(parsedBack);
Esto imprime dos líneas idénticas:
2009-10-22T21:13:14
2009-10-22T21:13:14
Este último System.out.println()
CALL llama implícitamente toString()
una vez más, así que esto no debería sorprender.
Cuando esta respuesta fue escrito en 2009 , 'SimpleDateFormat' era lo que teníamos para este propósito. Ha resultado problemático y afortunadamente ha sido reemplazado por 'java.time', la moderna API de fecha y hora de Java, y su clase' DateTimeFormatter' en 2014. Recomiendo que nunca vuelva a utilizar 'SimpleDateFormat'. –