|
2 | 2 |
|
3 | 3 | import org.apache.commons.lang.time.FastDateFormat;
|
4 | 4 |
|
| 5 | +import java.util.Calendar; |
5 | 6 | import java.util.Date;
|
6 | 7 |
|
7 | 8 |
|
@@ -35,9 +36,15 @@ public static String format(Date date) {
|
35 | 36 | long hours = toHours(delta);
|
36 | 37 | return (hours <= 0 ? 1 : hours) + ONE_HOUR_AGO;
|
37 | 38 | }
|
38 |
| - if (delta < 48L * ONE_HOUR) { |
| 39 | + |
| 40 | + Date lastDayBeginTime = getDateOffset(-1); |
| 41 | + if (date.after(lastDayBeginTime)) { |
39 | 42 | return "昨天";
|
40 | 43 | }
|
| 44 | + Date lastTwoDaysBeginTime = getDateOffset(-2); |
| 45 | + if (date.after(lastTwoDaysBeginTime)) { |
| 46 | + return "前天"; |
| 47 | + } |
41 | 48 | if (delta < 30L * ONE_DAY) {
|
42 | 49 | long days = toDays(delta);
|
43 | 50 | return (days <= 0 ? 1 : days) + ONE_DAY_AGO;
|
@@ -71,4 +78,22 @@ private static long toMonths(long date) {
|
71 | 78 | return toDays(date) / 30L;
|
72 | 79 | }
|
73 | 80 |
|
| 81 | + public static Date getDateOffset(int offset) { |
| 82 | + Calendar calendar = Calendar.getInstance(); |
| 83 | + calendar.setTime(new Date()); |
| 84 | + calendar.add(calendar.DATE, offset); |
| 85 | + |
| 86 | + return getDayBeginTime(calendar.getTime()); |
| 87 | + } |
| 88 | + |
| 89 | + private static Date getDayBeginTime(Date date) { |
| 90 | + Calendar calendar = Calendar.getInstance(); |
| 91 | + calendar.setTime(date); |
| 92 | + calendar.set(Calendar.HOUR, 0); |
| 93 | + calendar.set(Calendar.MINUTE, 0); |
| 94 | + calendar.set(Calendar.SECOND, 0); |
| 95 | + calendar.set(Calendar.MILLISECOND, 0); |
| 96 | + return new Date(calendar.getTime().getTime()); |
| 97 | + } |
| 98 | + |
74 | 99 | }
|
0 commit comments