Iam正在开发用于发送短信的应用程序。 Iam存储当前时间,并通过从数据库中检索时间来显示在已发送的历史记录页面中。在已发送的历史记录页面中,我想显示消息的发送时间。在这里,我想检查邮件是今天还是昨天或昨天之前发送的。如果消息是昨天发送的,那么我需要显示“昨天20:00”,甚至消息是昨天发送的,之前是“星期一20:00”。我不知道该怎么做。如果有人知道,请帮助我。

最佳答案

您可以使用android.text.format.DateFormat类轻松做到这一点。尝试这样的事情。

public String getFormattedDate(Context context, long smsTimeInMilis) {
    Calendar smsTime = Calendar.getInstance();
    smsTime.setTimeInMillis(smsTimeInMilis);

    Calendar now = Calendar.getInstance();

    final String timeFormatString = "h:mm aa";
    final String dateTimeFormatString = "EEEE, MMMM d, h:mm aa";
    final long HOURS = 60 * 60 * 60;
    if (now.get(Calendar.DATE) == smsTime.get(Calendar.DATE) ) {
        return "Today " + DateFormat.format(timeFormatString, smsTime);
    } else if (now.get(Calendar.DATE) - smsTime.get(Calendar.DATE) == 1  ){
        return "Yesterday " + DateFormat.format(timeFormatString, smsTime);
    } else if (now.get(Calendar.YEAR) == smsTime.get(Calendar.YEAR)) {
        return DateFormat.format(dateTimeFormatString, smsTime).toString();
    } else {
        return DateFormat.format("MMMM dd yyyy, h:mm aa", smsTime).toString();
    }
}

检查http://developer.android.com/reference/java/text/DateFormat.html以进一步了解。

08-04 07:37