没有使用任何库
昨天
今天
明天
今年
任何年份
public static String getMyPrettyDate(long neededTimeMilis) {
Calendar nowTime = Calendar.getInstance();
Calendar neededTime = Calendar.getInstance();
neededTime.setTimeInMillis(neededTimeMilis);
if ((neededTime.get(Calendar.YEAR) == nowTime.get(Calendar.YEAR))) {
if ((neededTime.get(Calendar.MONTH) == nowTime.get(Calendar.MONTH))) {
if (neededTime.get(Calendar.DATE) - nowTime.get(Calendar.DATE) == 1) {
//here return like "Tomorrow at 12:00"
return "Tomorrow at " + DateFormat.format("HH:mm", neededTime);
} else if (nowTime.get(Calendar.DATE) == neededTime.get(Calendar.DATE)) {
//here return like "Today at 12:00"
return "Today at " + DateFormat.format("HH:mm", neededTime);
} else if (nowTime.get(Calendar.DATE) - neededTime.get(Calendar.DATE) == 1) {
//here return like "Yesterday at 12:00"
return "Yesterday at " + DateFormat.format("HH:mm", neededTime);
} else {
//here return like "May 31, 12:00"
return DateFormat.format("MMMM d, HH:mm", neededTime).toString();
}
} else {
//here return like "May 31, 12:00"
return DateFormat.format("MMMM d, HH:mm", neededTime).toString();
}
} else {
//here return like "May 31 2010, 12:00" - it's a different year we need to show it
return DateFormat.format("MMMM dd yyyy, HH:mm", neededTime).toString();
}
}
Kotlin 扩展功能:
fun Long.toPrettyDate(): String {
val nowTime = Calendar.getInstance()
val neededTime = Calendar.getInstance()
neededTime.timeInMillis = this
return if (neededTime[Calendar.YEAR] == nowTime[Calendar.YEAR]) {
if (neededTime[Calendar.MONTH] == nowTime[Calendar.MONTH]) {
when {
neededTime[Calendar.DATE] - nowTime[Calendar.DATE] == 1 -> {
//here return like "Tomorrow at 12:00"
"Tomorrow at " + SimpleDateFormat("HH:mm", Locale.getDefault()).format(Date(this))
}
nowTime[Calendar.DATE] == neededTime[Calendar.DATE] -> {
//here return like "Today at 12:00"
"Today at " + SimpleDateFormat("HH:mm", Locale.getDefault()).format(Date(this))
}
nowTime[Calendar.DATE] - neededTime[Calendar.DATE] == 1 -> {
//here return like "Yesterday at 12:00"
"Yesterday at " + SimpleDateFormat("HH:mm", Locale.getDefault()).format(Date(this))
}
else -> {
//here return like "May 31, 12:00"
SimpleDateFormat("MMMM d, HH:mm", Locale.getDefault()).format(Date(this))
}
}
} else {
//here return like "May 31, 12:00"
SimpleDateFormat("MMMM d, HH:mm", Locale.getDefault()).format(Date(this))
}
} else {
//here return like "May 31 2022, 12:00" - it's a different year we need to show it
SimpleDateFormat("MMMM dd yyyy, HH:mm", Locale.getDefault()).format(Date(this))
}
}