jajaja me pasa algo curioso al jugar con las fechas en java... alguien puede ¿explicarme que pasa?
java.util.Date today2 = new java.util.Date();
calendario.setTime(today2);
calendario.add(Calendar.MONTH, 1);
calendario.set(calendario.get(Calendar.YEAR), calendario.get(Calendar.MONTH), 1,0,0,0);
today2 = calendario.getTime();
System.out.println(today2);
java.util.Date today = new java.util.Date();
today = new java.util.Date(today.getYear(), SetMes(today.getMonth()+1), 1 );
System.out.println(today);
System.out.println(today.getTime() == today2.getTime()); //Esto da false, cuando según yo, debiera ser true =S
Ya ubique porque.
today = new java.util.Date(today.getYear(), SetMes(today.getMonth()+1), 1 );
Me llena una nueva fecha con los parámetros que yo le paso, dejandome las horas, minutos segundos y milisegundos a 0.
Mientras que
java.util.Date today2 = new java.util.Date();
calendario.setTime(today2);
calendario.add(Calendar.MONTH, 1);
calendario.set(calendario.get(Calendar.YEAR),calendario.get(Calendar.MONTH), 1,0,0,0);
se queda con los valores que se le pasaron en un principio, incluyendo los milisegundos que es lo que causa la diferencia, lo curioso esque el método
calendario.set(calendario.get(Calendar.YEAR),calendario.get(Calendar.MONTH), 1,0,0,0);
solo me deja definir horas, minutos y segundos, y los milisegundos no, con el método calendario.clear() se puede poner los milisegundos a 0... pero ¿que pasaría si por algun motivo tuviera que definir milisegundos? ... :rolleyes:
Lo de utilizar getTime, para comparar la fecha no lo veo muy bien, ya que aveces solo quieres comparar el año, mes, dia y quizas hora o bueno solo 1 o 2 campos, pero si utilizas getTime entonce se tomara en cuenta hasta los segundo...
How To Compare Dates In Java (http://www.mkyong.com/java/how-to-compare-dates-in-java/)