我正在为同步联系人开发应用。 每个联系人都有一个update_time字段。 我想比较 当前的update_time 与之前的update_time 。
我的问题是我将时间作为字符串格式存储在我的数据库中。
1.如何将此字符串转换为时间?和
2.如何比较两次?
2014-07-11 15:10:55 这是我的时间格式。
欢迎任何帮助或评论。谢谢你的宝贵答案。
答案 0 :(得分:0)
我建议你在sqlite数据库中存储时间戳。
getTime()和setTime(long)可以帮助您在Date对象和时间戳之间进行转换。
此外,您还可以将时间戳直接比较为长整数。它们是自1970年1月1日00:00:00 GMT以来的毫秒数。
答案 1 :(得分:0)
(您可能希望考虑将数据库中的值存储为整数而不是文本。这里有优点和缺点,所以我只想把它作为一个有点分开的想法对你的实际问题。)
如果您很乐意解析java.util.Date
:
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
指定美国语言环境会阻止任何设备受到设备默认语言环境的影响。 (因为这些只是数字,所以不太可能 - 但可以想象它可以使用不同的日历系统。)
至于比较值:
String.compareTo
; ISO-8601格式的一个好处是可以排序。如果您要比较数据库中的值,则可以通过相同的方式在SQL查询中执行此操作,这也是因为ISO-8601的定义方式。Date
形式获取这两个值,并将其与Date.compareTo
请注意,如果您可以使用Joda Time,这是一个比java.util.Date
等更好的日期/时间API。
答案 2 :(得分:0)
另一种可能性是将数据库中的毫秒存储为int。通过使用getTimeInMillis()秒,您可以获得以毫秒为单位的时间whics易于存储在数据库中。比较很简单:
if(time1> time2)