src/org/nutz/lang/Times.java
public static String formatForRead(Date d) {
        long ms = System.currentTimeMillis() - d.getTime();
        // 如果 1 分钟内，打印 Just Now
        if (ms < (60000)) {
            return "Just Now";
        }
        // 如果 1 小时内，打印多少分钟
        if (ms < (60 * 60000)) {
            return "" + (ms / 60000) + "Min.";
        }

        // 如果 1 天之内，打印多少小时之前
        if (ms < (24 * 3600 * 1000)) {
            return "" + (ms / 3600000) + "hr.";
        }

        // 如果一周之内，打印多少天之前
        if (ms < (7 * 24 * 3600 * 1000)) {
            return "" + (ms / (24 * 3600000)) + "Day";
        }

        // 如果是今年之内，打印月份和日期
        Calendar c = Calendar.getInstance();
        int thisYear = c.get(Calendar.YEAR);

        c.setTime(d);
        int yy = c.get(Calendar.YEAR);
        int mm = c.get(Calendar.MONTH);
        if (thisYear == yy) {
            int dd = c.get(Calendar.DAY_OF_MONTH);
            return String.format("%s %d", _MMM[mm], dd);
        }

        // 否则打印月份和年
        return String.format("%s %d", _MMM[mm], yy);
    }
public static String formatForRead(Date d) {
        long ms = System.currentTimeMillis() - d.getTime();
        // 如果 1 分钟内，打印 Just Now
        if (ms < (60000)) {
            return "Just Now";
        }
        // 如果 1 小时内，打印多少分钟
        if (ms < (60 * 60000)) {
            return "" + (ms / 60000) + "Min.";
        }

        // 如果 1 天之内，打印多少小时之前
        if (ms < (24 * 3600 * 1000)) {
            return "" + (ms / 3600000) + "hr.";
        }

        // 如果一周之内，打印多少天之前
        if (ms < (7 * 24 * 3600 * 1000)) {
            return "" + (ms / (24 * 3600000)) + "Day";
        }

        // 如果是今年之内，打印月份和日期
        Calendar c = Calendar.getInstance();
        int thisYear = c.get(Calendar.YEAR);

        c.setTime(d);
        int yy = c.get(Calendar.YEAR);
        int mm = c.get(Calendar.MONTH);
        if (thisYear == yy) {
            int dd = c.get(Calendar.DAY_OF_MONTH);
            return String.format("%s %d", _MMM[mm], dd);
        }

        // 否则打印月份和年
        return String.format("%s %d", _MMM[mm], yy);
    }
public static String formatForRead ( Date d ) { long ms = System . currentTimeMillis ( ) - d . getTime ( ) ; // 如果 1 分钟内，打印 Just Now
 if ( ms < ( 60000 ) ) { return "Just Now" ; } // 如果 1 小时内，打印多少分钟
 if ( ms < ( 60 * 60000 ) ) { return "" + ( ms / 60000 ) + "Min." ; } // 如果 1 天之内，打印多少小时之前
 if ( ms < ( 24 * 3600 * 1000 ) ) { return "" + ( ms / 3600000 ) + "hr." ; } // 如果一周之内，打印多少天之前
 if ( ms < ( 7 * 24 * 3600 * 1000 ) ) { return "" + ( ms / ( 24 * 3600000 ) ) + "Day" ; } // 如果是今年之内，打印月份和日期
 Calendar c = Calendar . getInstance ( ) ; int thisYear = c . get ( Calendar . YEAR ) ; c . setTime ( d ) ; int yy = c . get ( Calendar . YEAR ) ; int mm = c . get ( Calendar . MONTH ) ; if ( thisYear == yy ) { int dd = c . get ( Calendar . DAY_OF_MONTH ) ; return String . format ( "%s %d" , _MMM [ mm ] , dd ) ; } // 否则打印月份和年
 return String . format ( "%s %d" , _MMM [ mm ] , yy ) ; }
将一个时间格式化成容易被人类阅读的格式

<pre>
如果 1 分钟内，打印 Just Now
如果 1 小时内，打印多少分钟
如果 1 天之内，打印多少小时之前
如果是今年之内，打印月份和日期
否则打印月份和年
</pre>

@param d
@return 日期字符串
将一个时间格式化成容易被人类阅读的格式