我检索从中出来,在格式的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