如何在java中进行两次比较?

时间:2014-07-13 19:57:35

标签: java android java-time

我正在为同步联系人开发应用。 每个联系人都有一个update_time字段。 我想比较 当前的update_time 之前的update_time

我的问题是我将时间作为字符串格式存储在我的数据库中

1.如何将此字符串转换为时间?

2.如何比较两次?

2014-07-11 15:10:55 这是我的时间格式。

欢迎任何帮助或评论。谢谢你的宝贵答案。

3 个答案:

答案 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)