-1

我正在开发一个用于同步联系人的应用程序。每个联系人都有一个 update_time 字段。我想将此当前 update_time以前的 update_time进行比较

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

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

2.如何比较两次?

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

欢迎任何帮助或评论。感谢您的宝贵回答。

4

3 回答 3

0

另一种可能性是将毫秒存储在数据库中作为 int。通过使用 getTimeInMillis() 秒,您可以获得以毫秒为单位的时间,这很容易存储在您的数据库中。像这样比较很容易:

if(time1> time2)

于 2014-07-13T20:32:42.077 回答
0

我建议您将时间戳存储在 sqlite 数据库中。

getTime()setTime(long)可以帮助您在Date对象和时间戳之间进行转换。

此外,您还可以将时间戳直接作为长整数进行比较。它们是自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。

于 2014-07-13T20:11:36.117 回答
0

(您可能需要考虑将数据库中的值存储为整数而不是文本。这里有利有弊,所以我将把它作为一个与您的实际问题有所不同的想法。)

如果您愿意解析为 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。

于 2014-07-13T20:11:43.710 回答