将毫秒与android中的数据进行比较

时间:2012-12-08 05:53:13

标签: android datetime android-sqlite milliseconds android-date

我已在毫秒中保存在数据库中<{1}} data+time ,现在我想从sq-lite获取数据具体日期和我的日期格式为“ 2012年12月26日”,如何将其与毫秒进行比较。

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

3 个答案:

答案 0 :(得分: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)) 
{
}

答案 1 :(得分:0)

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

因此,如果您在名为date的列中有时间并且数据位于名为myTable的表中,那么查询就是:

select date from myTable ... other constraints

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

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

拥有Calendar对象后,您可以使用get(int field) method检索所需的值。

或者,您可以使用DateFormat类。

有意义吗?

答案 2 :(得分: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");