sto recuperando un datetime da un DB SQLite, che esce in formato ...formato una stringa datetime in volta solo
2011-01-24 02:45:00
In C# posso semplicemente utilizzare DateTime.Parse("2011-01-24 02:45:00").ToString("HH:mm")
al fine di ottenere la stringa 02:45
È un modo per farlo in Android/Java? Il mio codice nella mia app Android si presenta così ...
// 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: grazie sia doc_180 e Konstantin Burov - gli esempi forniti hanno aiutato a risolvere il problema. Parte del problema era che stavo importando java.sql.Date invece di java.util.Date. Ho cambiato le cose e ora funziona perfettamente per me.
SimpleDateFormat richiede un argomento di data, non una stringa. Dovresti memorizzare la tua data come millisecondo e creare un oggetto data da quello. Data d = new Date (dateAsMillisec) e quindi passare a semplicateformat. –
@ doc_180: OK scusa, hai ragione, probabilmente devi ripensare alla mia domanda. Il mio problema è che il mio DB sul lato Android è un "mirror" di un DB SQLite dell'app basato su PC che usa quel formato datetime lungo/inverso e vorrei mantenere i formati allo stesso modo. Ho provato a utilizzare Date.parse (String) poi sdf.format (...) ma ho anche generato un'eccezione. – Squonk
Hai provato il mio codice. Funziona e ho controllato. –