【发布时间】:2011-01-24 03:02:33
【问题描述】:
我正在从 SQLite DB 中检索日期时间,该日期时间格式为...
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 和 Konstantin Burov - 给出的示例帮助我解决了问题。部分问题是我导入的是 java.sql.Date 而不是 java.util.Date。我已经改变了一些东西,现在它对我来说非常有效。
【问题讨论】:
-
SimpleDateFormat 需要日期参数,而不是字符串。您应该将日期存储为毫秒并从中创建一个日期对象。 Date d = new Date(dateAsMillisec) 然后将其传递给 simpledateformat。
-
@doc_180:好的,抱歉,你说的很对——可能需要重新考虑我的问题。我的问题是我在 Android 端的数据库是基于 PC 的应用程序的 SQLite 数据库的“镜像”,它使用长/反向日期时间格式,我想保持格式相同。我尝试使用 Date.parse(String) 然后 sdf.format(...) 但这也引发了异常。
-
你试过我的代码了吗?它有效,我已经检查过了。
标签: java android date-format simpledateformat