我正在开发一个用于同步联系人的应用程序。每个联系人都有一个 update_time 字段。我想将此当前 update_time与以前的 update_time进行比较。
我的问题是我将这个时间作为字符串格式存储在我的数据库中。
1.如何将此字符串转换为时间?和
2.如何比较两次?
2014-07-11 15:10:55这是我的时间格式。
欢迎任何帮助或评论。感谢您的宝贵回答。
另一种可能性是将毫秒存储在数据库中作为 int。通过使用 getTimeInMillis() 秒,您可以获得以毫秒为单位的时间,这很容易存储在您的数据库中。像这样比较很容易:
if(time1> time2)
我建议您将时间戳存储在 sqlite 数据库中。
getTime()和setTime(long)可以帮助您在Date对象和时间戳之间进行转换。
此外,您还可以将时间戳直接作为长整数进行比较。它们是自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。
(您可能需要考虑将数据库中的值存储为整数而不是文本。这里有利有弊,所以我将把它作为一个与您的实际问题有所不同的想法。)
如果您愿意解析为 a ,则解析相当容易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。