Formato de una cadena de fecha y hora sólo

Estoy recuperando un datetime de un DB de SQLite que sale en el formato …

2011-01-24 02:45:00 

En C # puedo simplemente usar DateTime.Parse("2011-01-24 02:45:00").ToString("HH:mm") para obtener la cadena 02:45

¿Es su una manera que puedo hacer esto en Android / Java? Mi código en mi aplicación para Android se ve así …

 // dateStr below is logging as correctly being yyyy-MM-dd HH:mm:ss format String dateStr = cursor.getString(cursor.getColumnIndex("start_time")); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String shortTimeStr = sdf.format(dateStr); // <-- throws IllegalArgumentException 

EDIT: Gracias a doc_180 y Konstantin Burov – los ejemplos dados me han ayudado a solucionar el problema. Parte del problema era que estaba importando java.sql.Date en lugar de java.util.Date. He cambiado las cosas y funciona perfectamente para mí ahora.

2 Solutions collect form web for “Formato de una cadena de fecha y hora sólo”

Necesita hacer lo siguiente.

 try { Date date = null; date = df.parse("2011-01-24 02:45:00"); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String shortTimeStr = sdf.format(date); System.out.println(shortTimeStr); } catch (ParseException e) { // To change body of catch statement use File | Settings | File Templates. e.printStackTrace(); } 

Como mencioné en el comentario, debe almacenar el tiempo en milisegundos en lugar de cadena. De lo contrario, no veo otra manera que la creación de un objeto intermediario Fecha.

SimpleDateFormat.format espera Date o Calendar como argumento mientras está pasando una String. Convierta primero la cadena en la fecha.

 String dateStr = cursor.getString(cursor.getColumnIndex("start_time")); SimpleDateFormat toFullDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date fullDate = toFullDate.parse(dateStr); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String shortTimeStr = sdf.format(fullDate); 

Y sí, preferiría almacenar la fecha en la base de datos, así que conseguir un objeto Date sería más trivial:

 Long dateMilliseconds = cursor.getLong(cursor.getColumnIndex("start_time")); Date fullDate = new Date(dateMilliseconds); 
  • Patrón de caracteres 'L' en SimpleDateFormat
  • SimpleDateFormat devuelve la fecha de la cadena en diferentes idiomas
  • Costumize android Fecha como twitter y feed de noticias de instagram
  • Android SimpleDateFormat devolver el tiempo incorrecto entre la medianoche y 1 am
  • Conversión de aaaa-mm-dd en dd mm aaaa
  • Java / Android: convierte una cadena de hora GMT a hora local
  • Android parse String hasta la fecha - carácter de patrón desconocido 'X'
  • SimpleDateFormat 24h
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.