Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 21.Android 時間工具DateUtil

21.Android 時間工具DateUtil

編輯:關於Android編程

21.Android 時間工具DateUtil

Android 時間工具DateUtil String 轉換 Date long 轉換 String long 去除 時分秒 計算時間差 24小時制轉12小時制 Date 轉換 String DateUtil全部源碼


String 轉換 Date

    /**
     * String 轉換 Date
     *
     * @param str
     * @param format
     * @return
     */
    public static Date string2Date(String str, String format) {
        try {
            return new SimpleDateFormat(format).parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return new Date();
    }

long 轉換 String

    /**
     * Date(long) 轉換 String
     *
     * @param time
     * @param format
     * @return
     */
    public static String date2String(long time, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(time);
        return s;
    }

long 去除 時分秒

    /**
     * long 去除 時分秒
     * 時分秒全部為0
     *
     * @param date
     * @return
     */
    public static long getYearMonthDay(long date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

計算時間差

    /**
     * 獲取目標時間和當前時間之間的差距
     *
     * @param date
     * @return
     */
    public static String getTimestampString(Date date) {
        Date curDate = new Date();
        long splitTime = curDate.getTime() - date.getTime();
        if (splitTime < (30 * ONE_DAY)) {
            if (splitTime < ONE_MINUTE) {
                return 剛剛;
            }
            if (splitTime < ONE_HOUR) {
                return String.format(%d分鐘前, splitTime / ONE_MINUTE);
            }

            if (splitTime < ONE_DAY) {
                return String.format(%d小時前, splitTime / ONE_HOUR);
            }

            return String.format(%d天前, splitTime / ONE_DAY);
        }
        String result;
        result = M月d日 HH:mm;
        return (new SimpleDateFormat(result, Locale.CHINA)).format(date);
    }

24小時制轉12小時制

    /**
     * 24小時制 轉換 12小時制
     *
     * @param time
     * @return
     */
    public static String time24To12(String time) {
        String str[] = time.split(:);
        int h = Integer.valueOf(str[0]);
        int m = Integer.valueOf(str[1]);
        String sx;
        if (h < 1) {
            h = 12;
            sx = 上午;
        } else if (h < 12) {
            sx = 上午;
        } else if (h < 13) {
            sx = 下午;
        } else {
            sx = 下午;
            h -= 12;
        }
        return String.format(%d:%02d%s, h, m, sx);
    }

Date 轉換 String

    public static String[] WEEK = new String[]{天, 一, 二, 三, 四, 五, 六};

    private static final long ONE_SECOND = 1000;
    private static final long ONE_MINUTE = ONE_SECOND * 60;
    private static final long ONE_HOUR = ONE_MINUTE * 60;
    private static final long ONE_DAY = ONE_HOUR * 24;

    /**
     * Date 轉換 HH
     * 
     * @param date
     * @return
     */
    public static String date2HH(Date date) {
        return new SimpleDateFormat(HH).format(date);
    }

    /**
     * Date 轉換 HH:mm:ss
     *
     * @param date
     * @return
     */
    public static String date2HHmm(Date date) {
        return new SimpleDateFormat(HH:mm).format(date);
    }

    /**
     * Date 轉換 HH:mm:ss
     *
     * @param date
     * @return
     */
    public static String date2HHmmss(Date date) {
        return new SimpleDateFormat(HH:mm:ss).format(date);
    }

    /**
     * Date 轉換 MM.dd
     *
     * @param date
     * @return
     */
    public static String date2MMdd(Date date) {
        return new SimpleDateFormat(MM.dd).format(date);
    }

    /**
     * Date 轉換 yyyy.MM.dd
     *
     * @param date
     * @return
     */
    public static String date2yyyyMMdd(Date date) {
        return new SimpleDateFormat(yyyy.MM.dd).format(date);
    }

    /**
     * Date 轉換 MM月dd日 星期
     *
     * @param date
     * @return
     */
    public static String date2MMddWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        return new SimpleDateFormat(MM月dd日 星期).format(date) + week[dayOfWeek - 1];
    }

    /**
     * Date 轉換 yyyy年MM月dd日 星期
     *
     * @param date
     * @return
     */
    public static String date2yyyyMMddWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        return new SimpleDateFormat(yyyy年MM月dd日 星期).format(date) + week[dayOfWeek - 1];
    }

DateUtil全部源碼

public class DateUtil {

    public static String[] WEEK = new String[]{天, 一, 二, 三, 四, 五, 六};

    private static final long ONE_SECOND = 1000;
    private static final long ONE_MINUTE = ONE_SECOND * 60;
    private static final long ONE_HOUR = ONE_MINUTE * 60;
    private static final long ONE_DAY = ONE_HOUR * 24;

    /**
     * String 轉換 Date
     *
     * @param str
     * @param format
     * @return
     */
    public static Date string2Date(String str, String format) {
        try {
            return new SimpleDateFormat(format).parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return new Date();
    }

    /**
     * Date(long) 轉換 String
     *
     * @param time
     * @param format
     * @return
     */
    public static String date2String(long time, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        String s = sdf.format(time);
        return s;
    }

    /**
     * long 去除 時分秒
     * 時分秒全部為0
     *
     * @param date
     * @return
     */
    public static long getYearMonthDay(long date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    /**
     * 獲取目標時間和當前時間之間的差距
     *
     * @param date
     * @return
     */
    public static String getTimestampString(Date date) {
        Date curDate = new Date();
        long splitTime = curDate.getTime() - date.getTime();
        if (splitTime < (30 * ONE_DAY)) {
            if (splitTime < ONE_MINUTE) {
                return 剛剛;
            }
            if (splitTime < ONE_HOUR) {
                return String.format(%d分鐘前, splitTime / ONE_MINUTE);
            }

            if (splitTime < ONE_DAY) {
                return String.format(%d小時前, splitTime / ONE_HOUR);
            }

            return String.format(%d天前, splitTime / ONE_DAY);
        }
        String result;
        result = M月d日 HH:mm;
        return (new SimpleDateFormat(result, Locale.CHINA)).format(date);
    }

    /**
     * 24小時制 轉換 12小時制
     *
     * @param time
     * @return
     */
    public static String time24To12(String time) {
        String str[] = time.split(:);
        int h = Integer.valueOf(str[0]);
        int m = Integer.valueOf(str[1]);
        String sx;
        if (h < 1) {
            h = 12;
            sx = 上午;
        } else if (h < 12) {
            sx = 上午;
        } else if (h < 13) {
            sx = 下午;
        } else {
            sx = 下午;
            h -= 12;
        }
        return String.format(%d:%02d%s, h, m, sx);
    }

    /**
     * Date 轉換 HH
     *
     * @param date
     * @return
     */
    public static String date2HH(Date date) {
        return new SimpleDateFormat(HH).format(date);
    }

    /**
     * Date 轉換 HH:mm:ss
     *
     * @param date
     * @return
     */
    public static String date2HHmm(Date date) {
        return new SimpleDateFormat(HH:mm).format(date);
    }

    /**
     * Date 轉換 HH:mm:ss
     *
     * @param date
     * @return
     */
    public static String date2HHmmss(Date date) {
        return new SimpleDateFormat(HH:mm:ss).format(date);
    }

    /**
     * Date 轉換 MM.dd
     *
     * @param date
     * @return
     */
    public static String date2MMdd(Date date) {
        return new SimpleDateFormat(MM.dd).format(date);
    }

    /**
     * Date 轉換 yyyy.MM.dd
     *
     * @param date
     * @return
     */
    public static String date2yyyyMMdd(Date date) {
        return new SimpleDateFormat(yyyy.MM.dd).format(date);
    }

    /**
     * Date 轉換 MM月dd日 星期
     *
     * @param date
     * @return
     */
    public static String date2MMddWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        return new SimpleDateFormat(MM月dd日 星期).format(date) + WEEK[dayOfWeek - 1];
    }

    /**
     * Date 轉換 yyyy年MM月dd日 星期
     *
     * @param date
     * @return
     */
    public static String date2yyyyMMddWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        return new SimpleDateFormat(yyyy年MM月dd日 星期).format(date) + WEEK[dayOfWeek - 1];
    }

}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved