androide timestamp parsing ido mal (siempre en 1970)

im tratando de convertir una cadena (con unix timestamp) a una fecha con el formato (dd-MM-aaaa)

y esto está funcionando en parte. El problema que tengo ahora es que mi fecha está en 17-01-1970 (en lugar de marzo 16 2015)

lo estoy convirtiendo así:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); Date d = null; int dateMulti = Integer.parseInt(Date); Calendar cal = Calendar.getInstance(Locale.ENGLISH); cal.setTimeInMillis(dateMulti); String date = DateFormat.format("dd-MM-yyyy", cal).toString(); Log.d("test",date); try { d = dateFormat.parse(date); } catch (ParseException e) { e.printStackTrace(); } 

donde Date = 1427101853 y el resultado = 17-01-1970

¿Qué estoy haciendo mal?

Está utilizando la cadena de formato incorrecta en la primera línea:

 SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy"); 

mm es minutos. Utilice MM (meses) en su lugar.

editar A Unix timestamp es un número de segundos desde 01-01-1970 00:00:00 GMT. Java mide el tiempo en milisegundos desde 01-01-1970 00:00:00 GMT. Necesita multiplicar la marca de tiempo de Unix por 1000:

 cal.setTimeInMillis(dateMulti * 1000L); 

¿Por qué tiene "dd-mm-yyyy" en SimpleDateFormat y "dd-MM-yyyy" en DateFormat.format ? Utilizar esta :

 String date = DateFormat.format("dd-mm-yyyy", cal).toString(); 

Si quieres minutos, si quieres meses tienes que poner MM como @Jesper dijo 🙂

  • Cómo encontrar la diferencia dos fechas en la aplicación android
  • Forzar Android DateUtils.getRelativeDateTimeString () para ignorar la configuración regional del dispositivo?
  • Análogo incorrecto de cadenas de fecha en SimpleDateFormat
  • ISO 8601 con milisegundos y Retrofit
  • ¿Cómo puedo calcular la edad en Java con precisión? Fecha de nacimiento
  • ¿Cuál es el formato de hora para esta "fecha": "2014-08-20 00:00:00 -0500"?
  • Android diferencia entre dos fechas en segundos
  • ¿Cómo clasificar las fechas de la fecha actual a la antigua en Android o Java?
  • Visualización de la fecha en formato de doble dígito
  • Android DatePicker cambia a solo mes y año
  • Shamsi / Jalali Calender en Android con parámetros de cadena
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.