我已在毫秒中保存在数据库中<{1}} data+time
,现在我想从sq-lite获取数据具体日期和我的日期格式为“ 2012年12月26日”,如何将其与毫秒进行比较。
从数据库中获取数据的查询应该是什么?
答案 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");