我檢索從中出來,在格式的SQLite數據庫中的日期時間時間...格式日期時間字符串只
2011-01-24 02:45:00
在C#中,我可以僅僅是爲了使用DateTime.Parse("2011-01-24 02:45:00").ToString("HH:mm")
得到的字符串02:45
是他們的一種方式我可以在Android/Java中執行此操作嗎?我在我的Android應用程序的代碼看起來像這樣...
// 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
編輯:由於雙方doc_180和康斯坦丁波羅夫 - 給予幫助我理清問題的例子。部分問題是我正在導入java.sql.Date而不是java.util.Date。我已經改變了一切,現在它對我來說很完美。
SimpleDateFormat需要日期參數,而不是字符串。您應該將日期存儲爲毫秒並從中創建日期對象。日期d =新日期(dateAsMillisec),然後將其傳遞給simpledateformat。 – 2011-01-24 03:05:02
@ doc_180:好的,對不起,你說得很對 - 可能需要重新思考我的問題。我的問題是我的Android數據庫是基於PC的應用程序的SQLite數據庫的「鏡像」,它使用了長/反向日期時間格式,我想保持格式一致。我嘗試使用Date.parse(String),然後sdf.format(...)但也引發了一個異常。 – Squonk 2011-01-24 03:16:39
你試過我的代碼嗎?它的工作原理和我檢查。 – 2011-01-24 03:30:50