date格式化

/**
  * 取得前一天的日期
  *
  * @return
  */
 public static String getStringDate() {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar cal = Calendar.getInstance();
  // 取得当前日期的前一天
  cal.add(Calendar.HOUR_OF_DAY, -24);
  return sdf.format(cal.getTime());
 }

 /**
  * 当前月的上个月的第一天
  *
  * @return
  */
 public static String getPreviousMonthFirst() {
  String str = "";
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar lastDate = Calendar.getInstance();
  // 设为当前月的1号
  lastDate.set(Calendar.DATE, 1);
  // 减一个月,变为上月的1号
  lastDate.add(Calendar.MONTH, -1);
  str = sdf.format(lastDate.getTime());
  return str;
 }

 /**
  * 当前月的上个月的最后一天
  *
  * @return
  */
 public static String getPreviousMonthEnd() {
  String str = "";
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Calendar lastDate = Calendar.getInstance();
  // 减一个月
  lastDate.add(Calendar.MONTH, -1);
  // 把日期设置为当月第一天
  lastDate.set(Calendar.DATE, 1);
  // 日期回滚一天,也就是上个月最后一天
  lastDate.roll(Calendar.DATE, -1);
  str = sdf.format(lastDate.getTime());
  return str;
 }

 /**
  * 取得指定时间的前count个月的第一天
  *
  * @return
  */
 public static String getPreviousMonthFirst(Date date, String format,
   int count) {
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  Calendar lastDate = Calendar.getInstance();
  lastDate.setTime(date);
  // 设为当前月的1号
  lastDate.set(Calendar.DATE, 1);
  // 减一个月,变为上月的1号
  lastDate.add(Calendar.MONTH, count);
  return sdf.format(lastDate.getTime());
 }

 /**
  * 取得指定时间的前count个月最后一天
  *
  * @return
  */
 public static String getPreviousMonthEnd(Date date, String format, int count) {
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  Calendar lastDate = Calendar.getInstance();
  lastDate.setTime(date);
  // 减count个月
  lastDate.add(Calendar.MONTH, count);
  // 把日期设置为当月第一天
  lastDate.set(Calendar.DAY_OF_MONTH, 1);
  // 日期回滚一天,也就是上个月最后一天
  lastDate.roll(Calendar.DAY_OF_MONTH, -1);
  return sdf.format(lastDate.getTime());
 }

 /**
  * 将Date转换成String
  *
  * @param date
  * @return
  */
 public static String getStringDate(Date date) {
  // 日期格式
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  return sdf.format(date);
 }

 /**
  * 将Date转换成String
  *
  * @param date
  * @param format
  * @return
  */
 public static String getStringDate(Date date, String format) {
  // 日期格式
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  return sdf.format(date);
 }

 /**
  * 字符转成日期
  *
  * @param dateString
  * @return
  * @throws ParseException
  */
 public static Date getDate(String dateString) {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  try {
   return sdf.parse(dateString);
  } catch (ParseException e) {
   e.printStackTrace();
   return null;
  }
 }

 /**
  * 字符转成日期
  *
  * @param dateString
  * @param format
  * @return
  * @throws ParseException
  */
 public static Date getDate(String dateString, String format) {
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  try {
   return sdf.parse(dateString);
  } catch (ParseException e) {
   e.printStackTrace();
   return null;
  }
 }

 /**
  * 得到以当天时间为基础的指定日期
  *
  * @param field
  *            <Calendar.HOUR_OF_DAY>
  * @param amount
  *            <-24> 例 Calendar.HOUR_OF_DAY, -24
  * @return
  */
 public static Date getLatestDate(int field, int amount) {
  Calendar calendar = Calendar.getInstance();
  calendar.add(field, amount);
  return calendar.getTime();
 }

 /**
  * 取得两个时间段的时间间隔天数
  *
  * @param t1时间1
  * @param t2时间2
  * @return t2 与t1的间隔天数
  */
 public static int getBetweenDays(String t1, String t2) {
  int betweenDays = 0;
  try {
   DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
   Date d1 = format.parse(t1);
   Date d2 = format.parse(t2);
   Calendar c1 = Calendar.getInstance();
   Calendar c2 = Calendar.getInstance();
   c1.setTime(d1);
   c2.setTime(d2);
   // 保证第二个时间一定大于第一个时间
   if (c1.after(c2)) {
    c1 = c2;
    c2.setTime(d1);
   }
   int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
   betweenDays = c2.get(Calendar.DAY_OF_YEAR)
     - c1.get(Calendar.DAY_OF_YEAR);
   for (int i = 0; i < betweenYears; i++) {
    c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1));
    betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
   }
   return betweenDays;
  } catch (ParseException e) {
   e.printStackTrace();
   return 0;
  }
 }

 /**
  * 取得两个时间段的时间间隔月数
  *
  * @param t1时间1
  * @param t2时间2
  * @return t2 与t1的间隔天数
  */
 public static int getBetweenMonths(String t1, String t2) {
  int betweenDays = 0;
  try {
   DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
   Date d1 = format.parse(t1);
   Date d2 = format.parse(t2);
   Calendar c1 = Calendar.getInstance();
   Calendar c2 = Calendar.getInstance();
   c1.setTime(d1);
   c2.setTime(d2);
   // 保证第二个时间一定大于第一个时间
   if (c1.after(c2)) {
    c1 = c2;
    c2.setTime(d1);
   }
   int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
   betweenDays = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH);
   for (int i = 0; i < betweenYears; i++) {
    c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1));
    betweenDays += c1.getMaximum(Calendar.MONTH);
   }
   // 因为统计到年和月之间的总月数,需要+1
   return betweenDays + 1;
  } catch (ParseException e) {
   e.printStackTrace();
   return 0;
  }
 }

 /**
  * 返回指定日期格式的日期增加指定天数的日期
  *
  * @param appDate指定日期
  * @param format指定日期格式
  * @param days指定天数
  * @return 指定日期格式的日期增加指定天数的日期
  */
 public static String getFutureDay(String appDate, String format, int days) {
  String future = null;
  try {
   Calendar calendar = Calendar.getInstance();
   SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
   Date date = simpleDateFormat.parse(appDate);
   calendar.setTime(date);
   calendar.add(Calendar.DATE, days);
   date = calendar.getTime();
   future = simpleDateFormat.format(date);
  } catch (Exception e) {
   future = null;
   e.printStackTrace();
  }
  return future;
 }

 /**
  * 返回当前日期的前count个月的日期
  *
  * @param count倒退的月数
  * @param format格式
  * @return
  */
 public static String getPastMonthDay(int count, String format) {
  Calendar calendar = Calendar.getInstance();
  Date now = new Date();
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  calendar.add(Calendar.MONTH, -count);
  now = calendar.getTime();
  return sdf.format(now);
 }
 

猜你喜欢

转载自jw-long.iteye.com/blog/1270785
今日推荐