我的Sqlite数据库中有一个字段(名为time,但type为TEXT)。该列的当前格式为YYYY:MM:DD_HH:MM
(2011:11:01_11:30)。现在我必须对此专栏进行排序,所以我认为我必须做两件事:
然后我该如何将该列转换为DateTime?或者还有其他方法吗?
答案 0 :(得分:20)
将字符串转换为日期,在我的情况下,这可以正常工作,
String startTime = "2011-09-05 15:00:23";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = dateFormat.parse(startTime);
修改强>
SQLite中的日期和时间
1。2日期和时间数据类型
SQLite没有预留用于存储日期和/或时间的存储类。相反,SQLite的内置Date And Time Functions能够将日期和时间存储为TEXT,REAL或INTEGER值:
* TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
* REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
* INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.
应用程序可以选择以任何格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。
因此,只需使用INTEGER或TEXT并使用ORDER BY子句进行排序。
答案 1 :(得分:0)
最佳做法是尽管文本使用长数据类型作为日期时间值。
然后你只需通过调用Date类构造函数来获取你的日期和时间就可以在你的代码中使用它。
这使得您的排序操作变得简单。