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. 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? ... 
