No entiendo por qué MutableDateTime.setDate()
está ajustando el tiempo a "ayer" (ver las horas de marca de hora de registro - es 20:28). ¿Esta zona horaria está relacionada? ¿Debo configurar algo en el formateador?Joda Time restando 24 horas de una instancia de MutableDateTime, me gustaría saber por qué
Esperaría que después de llamar a setDate con "10/27/2010", la fecha sería la misma que la fecha analizada 00:00 EDT 10/27/10, en lugar de 20:28 EDT 10/26/10. Esto es hace 24 horas desde "ahora".
¿Qué me falta aquí, o cómo debería editar el código para obtener el resultado deseado? Soy nuevo en Joda Time y me gustaría resolver este misterio.
DateTimeFormatter dateFormatterJ = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTimeFormatter timestampFormatJ = DateTimeFormat.forPattern("HH:mm zzz MM/dd/yy");
MutableDateTime startDate = new MutableDateTime();
log.info("parsed date " +
timestampFormatJ.print(dateFormatterJ.parseMutableDateTime(startDateString)));
startDate.setDate((dateFormatterJ.parseMutableDateTime(startDateString)));
log.info("startDate: " + timestampFormatJ.print(startDate));
En este caso, startDateString
es simplemente "10/27/2010".
aquí es la salida del registro:
10-27 20:28:55 INFO parsed date: 00:00 EDT 10/27/10
10-27 20:28:55 INFO startDate: 20:28 EDT 10/26/10
Gracias
un google para + "parseLocalDate" + joda devuelve una sola publicación de grupos de google desde junio y algún código en GWT. Lo intenté usando withZone() antes de mirar la fuente y el resultado es el mismo. Parece que aunque especifico una zona, el código en MutableDateTime lo ve en mi Cronología, luego lo cambia y lo convierte en UTC en lugar de desplazarlo a la zona horaria de MutableDateTime. – Affe