1. 程式人生 > >java判斷今天,昨天,前天,不能用秒間隔

java判斷今天,昨天,前天,不能用秒間隔

。。。。

一json optString 解析的TimesTamp  string

 二long dateSec = (long) (Double.valueOf(timestamp) * 1000);

三Date date=new Date(dateSec);

四getTimestampString(date);

public static String getTimestampString(Date paramDate) {
        String str = null;
        long l = paramDate.getTime();
        Calendar localCalendar = GregorianCalendar.getInstance();
        localCalendar.setTime(paramDate);
        int year = localCalendar.get(Calendar.YEAR);

        if(! isSameYear(year)){ //去年,直接返回
            String paramDate2str = new SimpleDateFormat("yyyy MM dd", Locale.CHINA).format(paramDate);
            return paramDate2str;
        }


        if (isSameDay(l)) {
            int i = localCalendar.get(Calendar.HOUR_OF_DAY);
            if (i > 17) {
                str = "晚上 HH:mm";//HH表示24小時,hh表示12小時進位制,
            } else if ((i >= 0) && (i <= 6)) {
                str = "凌晨 HH:mm";
            } else if ((i > 11) && (i <= 17)) {
                str = "下午 HH:mm";
            } else {
                str = "上午 HH:mm";
            }
        } else if (isYesterday(l)) {
            str = "昨天 HH:mm";
        } else if (isBeforeYesterday(l)) {
            str = "前天 HH:mm";
        } else {
            str = "M月d日 HH:mm";
        }
        String paramDate2str = new SimpleDateFormat(str, Locale.CHINA).format(paramDate);
        return paramDate2str;
    }

。。。

//   獲取  今天開始結束 時間

 public static TimeInfo getTodayStartAndEndTime() {

        Calendar localCalendar1 = Calendar.getInstance();
        localCalendar1.set(Calendar.HOUR_OF_DAY, 0);
        localCalendar1.set(Calendar.MINUTE, 0);
        localCalendar1.set(Calendar.SECOND, 0);
        localCalendar1.set(Calendar.MILLISECOND, 0);
        Date localDate1 = localCalendar1.getTime();

        long l1 = localDate1.getTime();

        Calendar localCalendar2 = Calendar.getInstance();
        localCalendar2.set(Calendar.HOUR_OF_DAY, 23);
        localCalendar2.set(Calendar.MINUTE, 59);
        localCalendar2.set(Calendar.SECOND, 59);
        localCalendar2.set(Calendar.MILLISECOND, 999);
        Date localDate2 = localCalendar2.getTime();

        long l2 = localDate2.getTime();

        TimeInfo localTimeInfo = new TimeInfo();
        localTimeInfo.setStartTime(l1);
        localTimeInfo.setEndTime(l2);
        return localTimeInfo;

    }

//   獲取  昨天開始結束 時間

    public static TimeInfo getYesterdayStartAndEndTime() {
        Calendar localCalendar1 = Calendar.getInstance();
        localCalendar1.add(Calendar.DAY_OF_MONTH, -1);//5
        localCalendar1.set(Calendar.HOUR_OF_DAY, 0);//11
        localCalendar1.set(Calendar.MINUTE, 0);//12
        localCalendar1.set(Calendar.SECOND, 0);//13
        localCalendar1.set(Calendar.MILLISECOND, 0);//Calendar.MILLISECOND
        Date localDate1 = localCalendar1.getTime();
        long l1 = localDate1.getTime();


        Calendar localCalendar2 = Calendar.getInstance();
        localCalendar2.add(Calendar.DAY_OF_MONTH, -1);//5
        localCalendar2.set(Calendar.HOUR_OF_DAY, 23);//11
        localCalendar2.set(Calendar.MINUTE, 59);//12
        localCalendar2.set(Calendar.SECOND, 59);//13
        localCalendar2.set(Calendar.MILLISECOND, 999);//Calendar.MILLISECOND
        Date localDate2 = localCalendar2.getTime();
        long l2 = localDate2.getTime();


        TimeInfo localTimeInfo = new TimeInfo();
        localTimeInfo.setStartTime(l1);
        localTimeInfo.setEndTime(l2);
        return localTimeInfo;
    }

//   獲取 前天開始結束 時間

    public static TimeInfo getBeforeYesterdayStartAndEndTime() {
        Calendar localCalendar1 = Calendar.getInstance();
        localCalendar1.add(Calendar.DAY_OF_MONTH, -2);
        localCalendar1.set(Calendar.HOUR_OF_DAY, 0);
        localCalendar1.set(Calendar.MINUTE, 0);
        localCalendar1.set(Calendar.SECOND, 0);
        localCalendar1.set(Calendar.MILLISECOND, 0);
        Date localDate1 = localCalendar1.getTime();
        long l1 = localDate1.getTime();


        Calendar localCalendar2 = Calendar.getInstance();
        localCalendar2.add(Calendar.DAY_OF_MONTH, -2);
        localCalendar2.set(Calendar.HOUR_OF_DAY, 23);
        localCalendar2.set(Calendar.MINUTE, 59);
        localCalendar2.set(Calendar.SECOND, 59);
        localCalendar2.set(Calendar.MILLISECOND, 999);
        Date localDate2 = localCalendar2.getTime();
        long l2 = localDate2.getTime();
        TimeInfo localTimeInfo = new TimeInfo();
        localTimeInfo.setStartTime(l1);
        localTimeInfo.setEndTime(l2);
        return localTimeInfo;
    }

    private static boolean isSameDay(long paramLong) {
        TimeInfo localTimeInfo = getTodayStartAndEndTime();
        return (paramLong > localTimeInfo.getStartTime()) && (paramLong < localTimeInfo.getEndTime());
    }


    private static boolean isYesterday(long paramLong) {
        TimeInfo localTimeInfo = getYesterdayStartAndEndTime();
        return (paramLong > localTimeInfo.getStartTime()) && (paramLong < localTimeInfo.getEndTime());
    }

    private static boolean isBeforeYesterday(long paramLong) {
        TimeInfo localTimeInfo = getBeforeYesterdayStartAndEndTime();
        return (paramLong > localTimeInfo.getStartTime()) && (paramLong < localTimeInfo.getEndTime());
    }




    public static boolean isSameYear(int year) {
        Calendar cal = Calendar.getInstance();
        int CurYear = cal.get(Calendar.YEAR);
//        Log.e("","CurYear="+CurYear);//2015
        return  CurYear==year;
    }

。。。。。。

public class TimeInfo {
    private long startTime;
    private long endTime;


    public long getStartTime() {
        return this.startTime;
    }


    public void setStartTime(long paramLong) {
        this.startTime = paramLong;
    }


    public long getEndTime() {
        return this.endTime;
    }


    public void setEndTime(long paramLong) {
        this.endTime = paramLong;
    }
}