package com.camnter.newlife.utils; import android.annotation.SuppressLint; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; @SuppressLint("SimpleDateFormat") /** * Description:DateUtils * Created by:CaMnter * Time:2015-09-24 15:23 */ public class DateUtils { 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; public static String[] WEEK = new String[] { "天", "一", "二", "三", "四", "五", "六" }; /** * String 转换 Date * * @param str str * @param format format * @return Date */ 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 time * @param format format * @return String */ public static String date2String(long time, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); String s = sdf.format(time); return s; } /** * long 去除 时分秒 * 时分秒全部为0 * * @param date date * @return long */ 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 date * @return String */ 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 time * @return String */ 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 date * @return String */ public static String date2HH(Date date) { return new SimpleDateFormat("HH").format(date); } /** * Date 转换 HH:mm:ss * * @param date date * @return String */ public static String date2HHmm(Date date) { return new SimpleDateFormat("HH:mm").format(date); } /** * Date 转换 HH:mm:ss * * @param date date * @return String */ public static String date2HHmmss(Date date) { return new SimpleDateFormat("HH:mm:ss").format(date); } /** * Date 转换 MM.dd * * @param date date * @return String */ public static String date2MMdd(Date date) { return new SimpleDateFormat("MM.dd").format(date); } /** * Date 转换 yyyy.MM.dd * * @param date date * @return String */ public static String date2yyyyMMdd(Date date) { return new SimpleDateFormat("yyyy.MM.dd").format(date); } /** * Date 转换 MM月dd日 星期 * * @param date date * @return String */ 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 date * @return String */ 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]; } }