日期管理类 → AppDateMgr

本文介绍了一个用于处理日期和时间的实用工具类,提供了多种日期时间格式化、解析、比较等功能,帮助开发者更高效地处理日期时间相关的任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.jingewenku.abrahamcaijin.commonutil;
   
   
  import com.jingewenku.abrahamcaijin.commonutil.klog.KLog;
   
  import java.text.DateFormat;
  import java.text.DecimalFormat;
  import java.text.ParseException;
  import java.text.SimpleDateFormat;
  import java.util.Calendar;
  import java.util.Date;
  import java.util.Locale;
   
  /**
  * @Description:主要功能:时间日期管理
  *
  * @Prject: CommonUtilLibrary
  * @Package: com.jingewenku.abrahamcaijin.commonutil
  * @author: june
  * @date: 2017年05月05日 14:18
  * @Copyright: 个人版权所有
  * @Company:
  * @version: 1.0.0
  */
   
  public class AppDateMgr {
   
  public AppDateMgr() {
  throw new UnsupportedOperationException("cannot be instantiated");
  }
   
  public static final SimpleDateFormat YYYYMMDD_FORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
  public static final SimpleDateFormat HHMMSS_FORMAT = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
  public static final SimpleDateFormat YYYYMMDDHHMMSS_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
  private static final String[] CHINESE_ZODIAC = new String[]{"", "", "", "", "", "", "", "", "", "", "", ""};
  private static final String[] ZODIAC = new String[]{"水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "魔羯座"};
   
  private static final int[] ZODIAC_FLAGS = new int[]{20, 19, 21, 21, 21, 22, 23, 23, 23, 24, 23, 22};
   
  /**
  * 当天的年月日
  * @return
  */
  public static String todayYyyyMmDd() {
  return YYYYMMDD_FORMAT.format(new Date());
  }
   
  /**
  * 当天的时分秒
  * @return
  */
  public static String todayHhMmSs() {
  return HHMMSS_FORMAT.format(new Date());
  }
   
  /**
  * 当天的年月日时分秒
  * @return
  */
  public static String todayYyyyMmDdHhMmSs() {
  return YYYYMMDDHHMMSS_FORMAT.format(new Date());
  }
   
  /**
  * 获取年
  * @param dateTime
  * @return
  */
  public static int parseYyyy(String dateTime) {
  try {
  Calendar e = Calendar.getInstance();
  Date date = YYYYMMDDHHMMSS_FORMAT.parse(dateTime);
  e.setTime(date);
  return e.get(1);
  } catch (ParseException var3) {
  var3.printStackTrace();
  return 0;
  }
  }
   
  /**
  * 获取年
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static int parseYyyy(String dateTime, SimpleDateFormat simpleDateFormat) {
  try {
  Calendar e = Calendar.getInstance();
  Date date = simpleDateFormat.parse(dateTime);
  e.setTime(date);
  return e.get(1);
  } catch (ParseException var4) {
  var4.printStackTrace();
  return 0;
  }
  }
   
  /**
  * 获取年
  * @param date
  * @return
  */
  public static int parseYyyy(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(1);
  }
   
  /**
  * 获取月
  * @param dateTime
  * @return
  */
  public static int parseMm(String dateTime) {
  try {
  Calendar e = Calendar.getInstance();
  Date date = YYYYMMDDHHMMSS_FORMAT.parse(dateTime);
  e.setTime(date);
  return e.get(2);
  } catch (ParseException var3) {
  var3.printStackTrace();
  return 0;
  }
  }
   
  /**
  * 获取月
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static int parseMm(String dateTime, SimpleDateFormat simpleDateFormat) {
  try {
  Calendar e = Calendar.getInstance();
  Date date = simpleDateFormat.parse(dateTime);
  e.setTime(date);
  return e.get(2);
  } catch (ParseException var4) {
  var4.printStackTrace();
  return 0;
  }
  }
   
  /**
  * 获取月
  * @param date
  * @return
  */
  public static int parseMm(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(2);
  }
   
  /**
  * 获取日
  * @param dateTime
  * @return
  */
  public static int parseDd(String dateTime) {
  try {
  Calendar e = Calendar.getInstance();
  Date date = YYYYMMDDHHMMSS_FORMAT.parse(dateTime);
  e.setTime(date);
  return e.get(5);
  } catch (ParseException var3) {
  var3.printStackTrace();
  return 0;
  }
  }
   
  /**
  * 获取日
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static int parseDd(String dateTime, SimpleDateFormat simpleDateFormat) {
  try {
  Calendar e = Calendar.getInstance();
  Date date = simpleDateFormat.parse(dateTime);
  e.setTime(date);
  return e.get(5);
  } catch (ParseException var4) {
  var4.printStackTrace();
  return 0;
  }
  }
   
  /**
  * 获取日
  * @param date
  * @return
  */
  public static int parseDd(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(5);
  }
   
  /**
  * 获取年月日
  * @param dateTime
  * @return
  */
  public static String parseYyyyMmDd(String dateTime) {
  String result = "";
   
  try {
  Date e = YYYYMMDDHHMMSS_FORMAT.parse(dateTime);
  result = YYYYMMDD_FORMAT.format(e);
  } catch (ParseException var3) {
  var3.printStackTrace();
  }
   
  return result;
  }
   
  /**
  * 获取年月日
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static String parseYyyyMmDd(String dateTime, SimpleDateFormat simpleDateFormat) {
  String result = "";
   
  try {
  Date e = simpleDateFormat.parse(dateTime);
  result = YYYYMMDD_FORMAT.format(e);
  } catch (ParseException var4) {
  var4.printStackTrace();
  }
   
  return result;
  }
   
  /**
  * 获取年月日
  * @param date
  * @return
  */
  public static String parseYyyyMmDd(Date date) {
  return YYYYMMDD_FORMAT.format(date);
  }
   
  /**
  * 时分秒
  * @param dateTime
  * @return
  */
  public static String parseHhMmSs(String dateTime) {
  try {
  Date e = YYYYMMDDHHMMSS_FORMAT.parse(dateTime);
  return HHMMSS_FORMAT.format(e);
  } catch (ParseException var2) {
  var2.printStackTrace();
  return "";
  }
  }
   
  /**
  * 时分秒
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static String parseHhMmSs(String dateTime, SimpleDateFormat simpleDateFormat) {
  try {
  Date e = simpleDateFormat.parse(dateTime);
  return HHMMSS_FORMAT.format(e);
  } catch (ParseException var3) {
  var3.printStackTrace();
  return "";
  }
  }
   
  /**
  * 时分秒
  * @param date
  * @return
  */
  public static String parseHhMmSs(Date date) {
  return HHMMSS_FORMAT.format(date);
  }
   
  /**
  * 获取星期几
  * @param dateTime
  * @return
  */
  public static int getWeekNumber(String dateTime) {
  return getWeekNumber(string2Date(dateTime, YYYYMMDDHHMMSS_FORMAT));
  }
   
  /**
  * 获取星期几
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static int getWeekNumber(String dateTime, SimpleDateFormat simpleDateFormat) {
  return getWeekNumber(string2Date(dateTime, simpleDateFormat));
  }
   
  /**
  * 获取星期几
  * @param date
  * @return
  */
  public static int getWeekNumber(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(7);
  }
   
  /**
  * 日期中某个月份的第几周
  * @param dateTime
  * @return
  */
  public static int getWeekOfMonth(String dateTime) {
  return getWeekOfMonth(string2Date(dateTime, YYYYMMDDHHMMSS_FORMAT));
  }
   
  /**
  * 日期中某个月份的第几周
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static int getWeekOfMonth(String dateTime, SimpleDateFormat simpleDateFormat) {
  return getWeekOfMonth(string2Date(dateTime, simpleDateFormat));
  }
   
  /**
  * 日期中某个月份的第几周
  * @param date
  * @return
  */
  public static int getWeekOfMonth(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(4);
  }
   
  /**
  * 日期中某个年份的第几周
  * @param time
  * @return
  */
  public static int getWeekOfYear(String time) {
  return getWeekOfYear(string2Date(time, YYYYMMDDHHMMSS_FORMAT));
  }
   
  /**
  * 日期中某个年份的第几周
  * @param time
  * @param simpleDateFormat
  * @return
  */
  public static int getWeekOfYear(String time, SimpleDateFormat simpleDateFormat) {
  return getWeekOfYear(string2Date(time, simpleDateFormat));
  }
   
  /**
  * 日期中某个年份的第几周
  * @param date
  * @return
  */
  public static int getWeekOfYear(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(3);
  }
   
  /**
  * 将年月日时分秒转成Long类型
  * @param dateTime
  * @return
  */
  public static Long dateTimeToTimeStamp(String dateTime) {
  try {
  Date e = YYYYMMDDHHMMSS_FORMAT.parse(dateTime);
  return Long.valueOf(e.getTime() / 1000L);
  } catch (ParseException var2) {
  var2.printStackTrace();
  return Long.valueOf(0L);
  }
  }
   
  /**
  * 将Long类型转成年月日时分秒
  * @param timeStamp
  * @return
  */
  public static String timeStampToDateTime(Long timeStamp) {
  return YYYYMMDDHHMMSS_FORMAT.format(new Date(timeStamp.longValue() * 1000L));
  }
   
  /**
  * 将年月日时分秒转成Date类型
  * @param time
  * @return
  */
  public static Date string2Date(String time) {
  return string2Date(time, YYYYMMDDHHMMSS_FORMAT);
  }
   
  /**
  * 将年月日时分秒转成Date类型
  * @param time
  * @param simpleDateFormat
  * @return
  */
  public static Date string2Date(String time, SimpleDateFormat simpleDateFormat) {
  try {
  return simpleDateFormat.parse(time);
  } catch (ParseException var3) {
  var3.printStackTrace();
  return null;
  }
  }
   
  /**
  * 将Date类型转成年月日时分秒
  * @param date
  * @return
  */
  public static String date2String(Date date) {
  return date2String(date, YYYYMMDDHHMMSS_FORMAT);
  }
   
  /**
  * 将Date类型转成年月日时分秒
  * @param date
  * @param simpleDateFormat
  * @return
  */
  public static String date2String(Date date, SimpleDateFormat simpleDateFormat) {
  return simpleDateFormat.format(date);
  }
   
  /**
  * 比较日期
  * @param standDate
  * @param desDate
  * @return
  */
  public static boolean dateIsBefore(String standDate, String desDate) {
  try {
  return YYYYMMDDHHMMSS_FORMAT.parse(desDate).before(YYYYMMDDHHMMSS_FORMAT.parse(standDate));
  } catch (ParseException var3) {
  var3.printStackTrace();
  return false;
  }
  }
   
  /**
  * 相差多少分钟
  * @param beginDate
  * @param endDate
  * @return
  */
  public static long minutesBetweenTwoDate(String beginDate, String endDate) {
  long millisBegin = dateTimeToTimeStamp(beginDate).longValue();
  long millisEnd = dateTimeToTimeStamp(endDate).longValue();
  return (millisEnd - millisBegin) / 60L;
  }
   
  /**
  * 获取日期中的生肖
  * @param dateTime
  * @return
  */
  public static String getChineseZodiac(String dateTime) {
  int yyyy = parseYyyy(dateTime);
  return getChineseZodiac(yyyy);
  }
   
  /**
  * 获取日期中的生肖
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static String getChineseZodiac(String dateTime, SimpleDateFormat simpleDateFormat) {
  int yyyy = parseYyyy(dateTime, simpleDateFormat);
  return getChineseZodiac(yyyy);
  }
   
  /**
  * 获取日期中的生肖
  * @param date
  * @return
  */
  public static String getChineseZodiac(Date date) {
  int yyyy = parseYyyy(date);
  return getChineseZodiac(yyyy);
  }
   
  /**
  * 获取日期中的生肖
  * @param year
  * @return
  */
  public static String getChineseZodiac(int year) {
  return CHINESE_ZODIAC[year % 12];
  }
   
  /**
  * 获取日期中的星座
  * @param dateTime
  * @return
  */
  public static String getZodiac(String dateTime) {
  int dd = parseDd(dateTime);
  int month = parseMm(dateTime);
  return getZodiac(month, dd);
  }
   
  /**
  * 获取日期中的星座
  * @param dateTime
  * @param simpleDateFormat
  * @return
  */
  public static String getZodiac(String dateTime, SimpleDateFormat simpleDateFormat) {
  int dd = parseDd(dateTime, simpleDateFormat);
  int month = parseMm(dateTime, simpleDateFormat);
  return getZodiac(month, dd);
  }
   
  /**
  * 获取日期中的星座
  * @param date
  * @return
  */
  public static String getZodiac(Date date) {
  int dd = parseDd(date);
  int month = parseMm(date);
  return getZodiac(month, dd);
  }
   
  /**
  * 获取日期中的星座
  * @param month
  * @param day
  * @return
  */
  public static String getZodiac(int month, int day) {
  return ZODIAC[day >= ZODIAC_FLAGS[month - 1]?month - 1:(month + 10) % 12];
  }
   
  /**
  * 获取日期
  *
  * @param offset 表示偏移天数
  * @return
  */
  public String getNowDayOffset(int offset) {
  Calendar m_Calendar = Calendar.getInstance();
  long time = (long) m_Calendar.getTimeInMillis();
  time = time + offset * 24 * 3600 * 1000;
  Date myDate = new Date(time);
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  return df.format(myDate);
  }
   
  /**
  * 获取日期
  *
  * @param
  * @return
  */
  public String getTime(long time) {
  Date myDate = new Date(time);
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  return df.format(myDate);
  }
   
  /**
  * 使指定日期向前走一天,变成“明天”的日期
  *
  * @param cal 等处理日期
  */
  public void forward(Calendar cal) {
  int year = cal.get(Calendar.YEAR);
  int month = cal.get(Calendar.MONTH);//0到11
  int day = cal.get(Calendar.DAY_OF_MONTH);
  int days = getDaysOfMonth(year, month + 1);
  if (day == days) {//如果是本月最后一天,还要判断年份是不是要向前滚
  if (month == 11) {//如果是12月份,年份要向前滚
  cal.roll(Calendar.YEAR, true);
  cal.set(Calendar.MONTH, 0);//月份,第一月是0
  cal.set(Calendar.DAY_OF_MONTH, 1);
   
  } else {//如果不是12月份
  cal.roll(Calendar.MONTH, true);
  cal.set(Calendar.DAY_OF_MONTH, 1);
  }
   
  } else {
  cal.roll(Calendar.DAY_OF_MONTH, 1);//如果是月内,直接天数加1
  }
  }
   
  /**
  * 使日期倒一天
  *
  * @param cal
  */
  public void backward(Calendar cal) {
  //计算上一月有多少天
  int month = cal.get(Calendar.MONTH);//0到11
  int year = cal.get(Calendar.YEAR);
  int days = getDaysOfMonth(year, month);//上个月的天数
  int day = cal.get(Calendar.DAY_OF_MONTH);
  if (day == 1) {//如果是本月第一天,倒回上一月
  if (month == 0) {//如果是本年第一个月,年份倒一天
  cal.roll(Calendar.YEAR, false);
  cal.set(Calendar.MONTH, 11);//去年最后一个月是12月
  cal.set(Calendar.DAY_OF_MONTH, 31);//12月最后一天总是31号
  } else {//月份向前
  cal.roll(Calendar.MONTH, false);
  cal.set(Calendar.DAY_OF_MONTH, days);//上个月最后一天
  }
  } else {
  cal.roll(Calendar.DAY_OF_MONTH, false);//如果是月内,日期倒一天
  }
  }
   
  /**
  * 判断平年闰年
  *
  * @param year
  * @return true表示闰年,false表示平年
  */
  public boolean isLeapYear(int year) {
  if (year % 400 == 0) {
  return true;
  } else if (year % 100 != 0 && year % 4 == 0) {
  return true;
  }
  return false;
  }
   
  /**
  * 计算某月的天数
  *
  * @param year
  * @param month 现实生活中的月份,不是系统存储的月份,从1到12
  * @return
  */
   
  public int getDaysOfMonth(int year, int month) {
  if (month < 1 || month > 12) {
  return 0;
  }
  boolean isLeapYear = isLeapYear(year);
  int daysOfMonth = 0;
  switch (month) {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
  daysOfMonth = 31;
  break;
  case 4:
  case 6:
  case 9:
  case 11:
  daysOfMonth = 30;
  break;
  case 2:
  if (isLeapYear) {
  daysOfMonth = 29;
  } else {
  daysOfMonth = 28;
  }
   
  }
  return daysOfMonth;
  }
   
  /**
  * 获取当天凌晨的秒数
  *
  * @return
  */
  public long secondsMorning(Calendar c) {
  Calendar tempCalendar = Calendar.getInstance();
  tempCalendar.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
  return tempCalendar.getTimeInMillis();
  }
   
  /**
  * 获取第二天凌晨的秒数
  *
  * @return
  */
  public long secondsNight(Calendar c) {
  Calendar tempCalendar = Calendar.getInstance();
  tempCalendar.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
  forward(tempCalendar);
  return tempCalendar.getTimeInMillis();
  }
   
  /**
  * 判断某两天是不是同一天
  *
  * @param c1
  * @param c2
  * @return
  */
  public boolean isSameDay(Calendar c1, Calendar c2) {
   
  if (c1.get(Calendar.YEAR) != c2.get(Calendar.YEAR))
  return false;
  if (c1.get(Calendar.MONTH) != c2.get(Calendar.MONTH))
  return false;
  if (c1.get(Calendar.DAY_OF_MONTH) != c2.get(Calendar.DAY_OF_MONTH))
  return false;
  return true;
  }
   
  /** 日期格式:yyyy-MM-dd HH:mm:ss **/
  public static final String DF_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
   
  /** 日期格式:yyyy-MM-dd HH:mm **/
  public static final String DF_YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
   
  /** 日期格式:yyyy-MM-dd **/
  public static final String DF_YYYY_MM_DD = "yyyy-MM-dd";
   
  /** 日期格式:HH:mm:ss **/
  public static final String DF_HH_MM_SS = "HH:mm:ss";
   
  /** 日期格式:HH:mm **/
  public static final String DF_HH_MM = "HH:mm";
   
  private final static long MINUTE = 60 * 1000;// 1分钟
  private final static long HOUR = 60 * MINUTE;// 1小时
  private final static long DAY = 24 * HOUR;// 1天
  private final static long MONTH = 31 * DAY;//
  private final static long YEAR = 12 * MONTH;//
   
  /** Log输出标识 **/
  private static final String TAG = AppDateMgr.class.getSimpleName();
   
  /**
  * 将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚
  *
  * @param date
  * @return
  */
  public static String formatFriendly(Date date) {
  if (date == null) {
  return null;
  }
  long diff = new Date().getTime() - date.getTime();
  long r = 0;
  if (diff > YEAR) {
  r = (diff / YEAR);
  return r + "年前";
  }
  if (diff > MONTH) {
  r = (diff / MONTH);
  return r + "个月前";
  }
  if (diff > DAY) {
  r = (diff / DAY);
  return r + "天前";
  }
  if (diff > HOUR) {
  r = (diff / HOUR);
  return r + "个小时前";
  }
  if (diff > MINUTE) {
  r = (diff / MINUTE);
  return r + "分钟前";
  }
  return "刚刚";
  }
   
  /**
  * 将日期以yyyy-MM-dd HH:mm:ss格式化
  *
  * @param dateL
  * 日期
  * @return
  */
  public static String formatDateTime(long dateL) {
  SimpleDateFormat sdf = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
  Date date = new Date(dateL);
  return sdf.format(date);
  }
   
  /**
  * 将日期以yyyy-MM-dd HH:mm:ss格式化
  *
  * @param dateL
  * 日期
  * @return
  */
  public static String formatDateTime(long dateL, String formater) {
  SimpleDateFormat sdf = new SimpleDateFormat(formater);
  return sdf.format(new Date(dateL));
  }
   
  /**
  * 将日期以yyyy-MM-dd HH:mm:ss格式化
  *
  * @param formater
  * 日期
  * @return
  */
  public static String formatDateTime(Date date, String formater) {
  SimpleDateFormat sdf = new SimpleDateFormat(formater);
  return sdf.format(date);
  }
   
  /**
  * 将日期字符串转成日期
  *
  * @param strDate
  * 字符串日期
  * @return java.util.date日期类型
  */
   
  public static Date parseDate(String strDate) {
  DateFormat dateFormat = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
  Date returnDate = null;
  try {
  returnDate = dateFormat.parse(strDate);
  } catch (ParseException e) {
  KLog.v(TAG, "parseDate failed !");
   
  }
  return returnDate;
   
  }
   
  /**
  * 获取系统当前日期
  *
  * @return
  */
  public static Date gainCurrentDate() {
  return new Date();
  }
   
  /**
  * 验证日期是否比当前日期早
  *
  * @param target1
  * 比较时间1
  * @param target2
  * 比较时间2
  * @return true 则代表target1比target2晚或等于target2,否则比target2早
  */
  public static boolean compareDate(Date target1, Date target2) {
  boolean flag = false;
  try {
  String target1DateTime = AppDateMgr.formatDateTime(target1,
  DF_YYYY_MM_DD_HH_MM_SS);
  String target2DateTime = AppDateMgr.formatDateTime(target2,
  DF_YYYY_MM_DD_HH_MM_SS);
  if (target1DateTime.compareTo(target2DateTime) <= 0) {
  flag = true;
  }
  } catch (Exception e1) {
  KLog.e("比较失败,原因:" + e1.getMessage());
  }
  return flag;
  }
   
  /**
  * 对日期进行增加操作
  *
  * @param target
  * 需要进行运算的日期
  * @param hour
  * 小时
  * @return
  */
  public static Date addDateTime(Date target, double hour) {
  if (null == target || hour < 0) {
  return target;
  }
   
  return new Date(target.getTime() + (long) (hour * 60 * 60 * 1000));
  }
   
  /**
  * 对日期进行相减操作
  *
  * @param target
  * 需要进行运算的日期
  * @param hour
  * 小时
  * @return
  */
  public static Date subDateTime(Date target, double hour) {
  if (null == target || hour < 0) {
  return target;
  }
   
  return new Date(target.getTime() - (long) (hour * 60 * 60 * 1000));
  }
  private static SimpleDateFormat second = new SimpleDateFormat(
  "yy-MM-dd hh:mm:ss");
   
  private static SimpleDateFormat day = new SimpleDateFormat("yyyy-MM-dd");
  private static SimpleDateFormat detailDay = new SimpleDateFormat("yyyy年MM月dd日");
  private static SimpleDateFormat fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
  private static SimpleDateFormat tempTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  private static SimpleDateFormat excelDate = new SimpleDateFormat("yyyy/MM/dd");
   
  /**
  * 格式化excel中的时间
  * @param date
  * @return
  */
  public static String formatDateForExcelDate(Date date) {
  return excelDate.format(date);
  }
   
  /**
  * 将日期格式化作为文件名
  * @param date
  * @return
  */
  public static String formatDateForFileName(Date date) {
  return fileName.format(date);
  }
   
  /**
  * 格式化日期(精确到秒)
  *
  * @param date
  * @return
  */
  public static String formatDateSecond(Date date) {
  return second.format(date);
  }
   
  /**
  * 格式化日期(精确到秒)
  *
  * @param date
  * @return
  */
  public static String tempDateSecond(Date date) {
  return tempTime.format(date);
  }
   
  /**
  * 格式化日期(精确到秒)
  *
  * @param str
  * @return
  */
  public static Date tempDateSecond(String str) {
  try {
  return tempTime.parse(str);
  } catch (ParseException e) {
  e.printStackTrace();
  }
  return new Date();
  }
  /**
  * 格式化日期(精确到天)
  *
  * @param date
  * @return
  */
  public static String formatDateDay(Date date) {
  return day.format(date);
  }
   
  /**
  * 格式化日期(精确到天)
  *
  * @param date
  * @return
  */
  public static String formatDateDetailDay(Date date) {
  return detailDay.format(date);
  }
   
  /**
  * 将double类型的数字保留两位小数(四舍五入)
  *
  * @param number
  * @return
  */
  public static String formatNumber(double number) {
  DecimalFormat df = new DecimalFormat();
  df.applyPattern("#0.00");
  return df.format(number);
  }
   
  /**
  * 将字符串转换成日期
  *
  * @param date
  * @return
  * @throws Exception
  */
  public static Date formateDate(String date) throws Exception {
  return day.parse(date);
  }
   
  /**
  * 将字符日期转换成Date
  * @param date
  * @return
  * @throws Exception
  */
  public static Date parseStringToDate(String date) throws Exception {
  return day.parse(date);
  }
   
  /**
  * 将double日期转换成String
  * @param number
  * @return
  */
  public static String formatDoubleNumber(double number) {
  DecimalFormat df = new DecimalFormat("#");
  return df.format(number);
  }
   
  // /**
  // * 身份证号转生日
  // *
  // * @param identityCard 身份证
  // * @return 生日
  // */
  // public static Date identityCard2Date(String identityCard) {
  // try {
  // String dateStr;
  // if (identityCard.length() == 18) {
  // dateStr = identityCard.substring(6, 14);// 截取18位身份证身份证中生日部分
  // return formatDateString(dateStr, "yyyyMMdd");
  // }
  // if (identityCard.length() == 15) {
  // dateStr = identityCard.substring(6, 12);// 截取15位身份证中生日部分
  // return formatDateString(dateStr, "yyMMdd");
  // }
  // return null;
  // } catch (Exception e) {
  // return null;
  // }
  // }
  //
  // /**
  // * 格式化日期时间字符串
  // *
  // * @param dateString 日期时间字符串
  // * @param pattern 模式
  // * @return Date对象
  // */
  // public static Date formatDateString(String dateString, String pattern) {
  // try {
  // DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(pattern);
  // return dateTimeFormatter.parseDateTime(dateString).toDate();
  // } catch (Exception e) {
  // return null;
  // }
  // }
   
   
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值