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以进一步了解。