1

我正在使用以下游标查询 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")

并让所有时间都返回我选择的任何格式,但我想知道是否有更简单的方法来确定时间戳是从今天开始、本周早些时候还是过去一周前?或者另一种更容易让我确定的方法?

4

3 回答 3

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

           }
        }
    }
于 2013-10-24T19:35:17.670 回答
0

使用 SimpleDateFormat 格式字符串的任何问题,例如

SimpleDateFormat dateFormatted = new SimpleDateFormat("EEE, MMM d, ''yy")

或javadoc中提供的其他无数选项?

于 2013-10-24T19:34:02.217 回答
0

对于相对时间,您可以查看DateUtils.getRelativeTimeSpanString https://developer.android.com/reference/android/text/format/DateUtils.html

它会在 2 小时前、3 天前等获得您想要的输出。

于 2013-10-24T19:27:26.767 回答