4

我已经以毫秒为单位data+time保存在数据库(sq lite)中,现在我想从特定日期的 sq-lite 获取数据,并且我有这种格式的日期“ 2012 年 12 月 26 日”,如何将其与毫秒进行比较。

从数据库中获取数据的查询应该是什么?

4

3 回答 3

1

您必须将毫秒转换为日期格式,然后比较两个日期

转换为日期格式

        public static String getDate(long milliSeconds, String dateFormat)
{`enter code here`
    // Create a DateFormatter object for displaying date in specified format.
    DateFormat formatter = new SimpleDateFormat(dateFormat);

    // Create a calendar object that will convert the date and time value in milliseconds to date. 
     Calendar calendar = Calendar.getInstance();
     calendar.setTimeInMillis(milliSeconds);
     return formatter.format(calendar.getTime());
}

比较日期

SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy"); 
Date date1 = curFormater.parse(date1Str); 
Date date2 = curFormater.parse(date2Str); 
if (date1.before(date2)) 
{
}
于 2012-12-08T06:13:30.850 回答
0

我希望这对你有帮助

    public long getDateLong(String dateString, String format) throws ParseException
    {
        SimpleDateFormat f = new SimpleDateFormat(format);

        Date d = f.parse(dateString);

        return d.getTime();
    }

//

     long timeMillis; // Your long time millis
     boolean compare = timeMillis > getDateLong("26-December-2012", "dd-MMMM-yyyy");   
于 2012-12-08T06:14:59.893 回答
0

只需Calendar使用数据库中的 timeInMilliseconds 数据创建一个新的。

因此,如果您有时间在一个名为的列中date并且数据在一个名为 myTable 的表中,则获取该查询的查询是:

select date from myTable ... other constraints

在 android 中,只需使用从数据库中检索到的 long 值来构造一个新的 Calendar:

Calendar cal = new Calendar.getInstance();
cal.setTimeInMillis(timeInMsFromDatabase);

一旦你有了一个对象,你就可以使用方法Calendar检索你想要的值。get(int field)

或者,您可以使用DateFormat该类。

说得通?

于 2012-12-08T06:02:58.687 回答