¿Por qué el año en curso en la fecha guardada como 3912?

Para obtener la fecha y la hora actuales

final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); mHour = c.get(Calendar.HOUR_OF_DAY); mMinute = c.get(Calendar.MINUTE); 

Crear objeto de fecha actual

 Date toDate; toDate.setYear(mYear); toDate.setMonth(mMonth); toDate.setDate(mDay); Date endDate = toDate; 

Al imprimir el objeto endDate que obtuve

 Mon Jan 01 13:11:00 GMT+03:00 3912 

por qué ?

From Date.setYear(int) description: Establece el año calendario gregoriano desde 1900 para este objeto Date . Por lo tanto, 1900 + 2012 = 3912 .

Pero calendar.get(Calendar.YEAR) devuelve el número de año exacto 2012 . Por lo tanto, esta inconsistencia de la API causa su problema. Pero de todos modos Date.setYear(int) está obsoleto, por lo tanto, es mejor utilizar el objeto Calendar para los cálculos de fecha.

Mejor utilizar Calendario

 Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR,myear); 

(es decir)

 cal.set(Calendar.YEAR,2016); 
  • Cómo dividir cadena en java
  • Cómo analizar el formato de fecha "dd-MM" para obtener el año actual? "
  • Obtener la fecha de ayer desde android
  • La mejor manera de trabajar con las fechas en Android SQLite
  • Calcular la dirección de la luz solar de acuerdo con la hora actual y la posición en la tierra
  • Obteniendo diferencia entre dos fechas Android
  • ¿Cómo puedo encontrar el número de años entre dos fechas en android?
  • Cómo obtener el objeto Date en formato "AAAA-MM-DD" en android
  • Cómo cambiar el idioma de fecha y hora en android
  • El widget de Android no puede recibir el mensaje DATE_CHANGED
  • Convertir timestamp en fecha actual en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.