Programa seguido de salida. Alguien por favor me explique porqué 10,000,000 de milisegundos desde el 1 de enero de 1970 es el 31 de noviembre de 1969. Bueno, alguien por favor explique qué pasa con mi suposición de que la primera prueba debería producir un tiempo de 10,000,000 de milisegundos desde el 1 de enero de 1970. Números menores de 10,000,000 producen el mismo resultadoJava.util.Calendar - milisegundos desde el 1 de enero de 1970
public static void main(String[] args) {
String x = "10000000";
long l = new Long(x).longValue();
System.out.println("Long value: " + l);
Calendar c = new GregorianCalendar();
c.setTimeInMillis(l);
System.out.println("Calendar time in Millis: " + c.getTimeInMillis());
String origDate = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH);
System.out.println("Date in YYYY-MM-DD format: " + origDate);
x = "1000000000000";
l = new Long(x).longValue();
System.out.println("\nLong value: " + l);
c.setTimeInMillis(l);
System.out.println("Calendar time in Millis: " + c.getTimeInMillis());
origDate = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DAY_OF_MONTH);
System.out.println("Date in YYYY-MM-DD format: " + origDate);
}
Valor de larga: 10000000
tiempo Calendario de Millis: 10000000
Fecha en formato AAAA-MM-DD formato: 1969-11-31
Valor de larga: 1000000000000
Horas de calendario en Millis: 1000000000000
Fecha en formato AAAA-MM-DD: 2001-8-8
Gracias! Pensé que me estaba volviendo loco. –