我使用以下游标查询SMS数据库:
Uri uri = Uri.parse("content://mms-sms/conversations?simple=true");
Cursor cursor = _context.getApplicationContext().getContentResolver().query(uri, null, null, null, "normalized_date desc");
我收到了日期,但他们正在以数字格式返回。现在我知道我可以使用以下内容:
SimpleDateFormat dateFormatted = new SimpleDateFormat("hh:mm")
并让所有时间都返回我选择的任何格式,但我想知道是否有一种更简单的方法来确定时间戳是从今天开始,在本周早些时候还是在过去一周内前?还是另一种方法让我更容易确定这个?
答案 0 :(得分:0)
相对时间,您可以查看DateUtils.getRelativeTimeSpanString
https://developer.android.com/reference/android/text/format/DateUtils.html
它会在2小时前,3天前等所需的输出
答案 1 :(得分:0)
使用SimpleDateFormat格式字符串的任何问题,例如
SimpleDateFormat dateFormatted = new SimpleDateFormat("EEE, MMM d, ''yy")
或javadoc中提供的其他无数选项?
答案 2 :(得分:0)
您可以获取日期的Calendar
对象,并评估相对于当前日期获得的范围。
Calendar smsCalendar = Calendar.getInstance();
smsCalendar.setTimeInMillis( smsTime );
year1=c.get(c.YEAR);
week1=c.get(c.WEEK_OF_YEAR);
Calendar lastWeek=Calendar.getInstance();
year2=c.get(c.YEAR);
week2=c.get(c.WEEK_OF_YEAR);
if(year1 == year2){
if(week1 == week2}{
//Do what you want here
}
}
}