java日期时间操作工具类

本文实例为大家分享了java日期时间操作工具类,供大家参考,具体内容如下

虽然jdk1.8开始,加入了time包,里面对时区,本地化时间,格式化,以及时间等做了很好的封装,但仍然要写一个工具类。大家看着用。应该没有bug。如果发现了,请您一定告知,互相学习!好了,上代码:

package com.wdy.tools.utils.timeutil;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

 /**
 * TimeUtil 日期时间工具类
 * @author wangdy
 */
public class TimeUtil {

 /**
 * 获取当前系统时间的小时(HH)
 *
 * @return int 当前系统小时HH格式
 * @throws Exception
 */
 public static int getHH() throws Exception {
 DateFormat df = new SimpleDateFormat("HH");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return Integer.parseInt(str);
 }

 /**
 * 获取当前系统时间的分钟数(mm)
 *
 * @return int 当前系统分钟mm格式
 * @throws Exception
 */
 public static int getMM() throws Exception {
 DateFormat df = new SimpleDateFormat("mm");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 // return Integer.parseInt(str.split(":")[0]) * 4 +
 // Integer.parseInt(str.split(":")[1]) / 15;
 return Integer.parseInt(str);
 }

 /**
 * 获取当前系统时间的秒数(ss)
 *
 * @return int 当前系统时间的秒数(ss)
 * @throws Exception
 */
 public static int getSS() throws Exception {
 DateFormat df = new SimpleDateFormat("ss");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 // return Integer.parseInt(str.split(":")[0]) * 4 +
 // Integer.parseInt(str.split(":")[1]) / 15;
 return Integer.parseInt(str);
 }

 /**
 * 获取输入日期的前后日期
 *
 * @param date
 *      基准日期 yyyy-MM-dd
 * @param dayMark
 *      +代表往后,-代表往前
 * @return String 前后日期(yyyy-MM-dd)
 * @throws Exception
 */
 public static String getOtherDay(String date, int dayMark) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.DAY_OF_MONTH, dayMark);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在周的第一天(周一)
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @return String 周一(yyyy-MM-dd)
 * @throws Exception
 *
 * */
 public static String getWeekFirstDate(String date) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int days = c.get(Calendar.DAY_OF_WEEK);
 String strStart = "";
 if (days == 1) {
  strStart = getOtherDay(date, -days - 5);
 } else {
  strStart = getOtherDay(date, -days + 2);
 }
 return strStart;
 }

 /**
 * 获取日期所在周的最后一天(周日)
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @return String(yyyy-MM-dd)
 * @throws Exception
 *
 * */
 public static String getWeekLastDate(String date) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int days = c.get(Calendar.DAY_OF_WEEK);
 String strStart = "";
 if (days == 1) {
  strStart = getOtherDay(date, 0);
 } else {
  strStart = getOtherDay(date, 8 - days);
 }
 return strStart;
 }

 /**
 * 获取日期所在周(年的周数)的前后周的周一
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @param weekMark找基准日期
 *      +代表往后,-代表往前
 * @return String 前后周的周一(yyyy-MM-dd)
 * @throws Exception
 *
 * */
 public static String getOtherWeekFirstDate(String date, int weekMark)
  throws Exception {
 String firstDate = getWeekFirstDate(date);
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(firstDate);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.WEEK_OF_YEAR, weekMark);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在季的第一天
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @return String
 * @throws Exception
 *
 * */
 public static String getSeasonFirstDate(String date) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int year = c.get(Calendar.YEAR);
 int month = c.get(Calendar.MONTH);
 if (month < 3) {
  month = 0;
 } else if (month >= 3 && month < 6) {
  month = 3;
 } else if (month >= 6 && month < 9) {
  month = 6;
 } else if (month >= 9 && month < 12) {
  month = 9;
 }
 c.set(year, month, 1);

 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在季的前后季度的第一天(xxxx-xx-01)
 *
 * @param date
 *      基准日期yyyy-MM-dd
 * @param seasonMark
 *      找基准日期+代表往后,-代表往前
 * @return String
 * @throws Exception
 *
 * */
 public static String getOtherSeasonFirstDate(String date, int seasonMark)
  throws Exception {
 String firstDate = getSeasonFirstDate(date);
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(firstDate);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int month = seasonMark * 3;
 if (month != 0) {
  c.add(Calendar.MONTH, month);
 }
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在月的第一天 date基准日期
 *
 * @param date
 *      yyyy-MM-dd
 * @return String (yyyy-MM)
 * @throws Exception
 *
 * */
 public static String getMonthFirstDate(String date) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int year = c.get(Calendar.YEAR);
 int month = c.get(Calendar.MONTH);
 c.set(year, month, 1);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在月的最后一天
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @return String yyyy-MM-dd
 * @throws Exception
 *
 * */
 public static String getMonthLastDate(String date) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int year = c.get(Calendar.YEAR);
 int month = c.get(Calendar.MONTH);
 int dayNum = c.getActualMaximum(Calendar.DAY_OF_MONTH);
 c.set(year, month, dayNum);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在月的前后月份的第一天(yyyy-MM-01)
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @param monthMark找基准日期
 *      +代表往后,-代表往前
 * @return String
 * @throws Exception
 *
 * */
 public static String getOtherMonthFirstDate(String date, int monthMark)
  throws Exception {
 String firstDate = getMonthFirstDate(date);
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(firstDate);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.MONTH, monthMark);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在年的第一天
 *
 * @param date基准日期yyyy
 *      -MM-dd
 * @return String
 * @throws Exception
 *
 * */
 public static String getYearFirstDate(String date) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 int year = c.get(Calendar.YEAR);
 c.set(year, 0, 1);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 10);
 return strStart;
 }

 /**
 * 获取日期所在年的前后年的第一天(yyyy-01-01)
 *
 * @param date
 *      基准日期yyyy-MM-dd
 * @param monthMark
 *      找基准日期+代表往后,-代表往前
 * @return String
 * @throws Exception
 *
 * */
 public static String getOtherYearFirstDate(String date, int yearMark)
  throws Exception {
 String firstDate = getMonthFirstDate(date);
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(firstDate);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.YEAR, yearMark);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime.substring(0, 4);
 return strStart + "-01-01";
 }

 /**
 * 取得同期日期 年同期
 *
 * @param date
 *      yyyy-MM-dd
 * @param year
 *      年份
 * @return 年同期日期yyyy-MM-dd
 * @throws Exception
 */
 public static String getYearTqDay(String date, int year) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.YEAR, year);
 String mDateTime = df.format(c.getTime());
 return mDateTime;
 }

 /**
 * 取得同期日期 月同期
 *
 * @param date
 *      yyyy-MM-dd
 * @param month
 *      月份
 * @return 月同期日期yyyy-MM-dd
 * @throws Exception
 */
 public static String getMonthTqDay(String date, int month) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.MONTH, month);
 String mDateTime = df.format(c.getTime());
 return mDateTime;
 }

 /**
 * 取得同比月份
 *
 * @param month
 *      月份
 * @return 同比月份
 * @throws Exception
 */
 public static String getTbMonth(String month) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM");
 Date dt = df.parse(month);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.YEAR, -1);
 String mDateTime = df.format(c.getTime());
 return mDateTime;
 }

 /**
 * 取得环比月份
 *
 * @param month
 *      月份
 * @return 环比月份
 * @throws Exception
 */
 public static String getHbMonth(String month) throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM");
 Date dt = df.parse(month);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.MONTH, -1);
 String mDateTime = df.format(c.getTime());
 return mDateTime;
 }

 /**
 * 获取两个日期之间的天数
 *
 * @param sDate
 *      -- 起始日期yyyy-MM-dd
 * @param eDate
 *      -- 结束日期yyyy-MM-dd
 * @return int--天数
 * @throws Exception
 * */
 public static int getDaysOfTwoDate(String sDate, String eDate)
  throws Exception {

 DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
 DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
 Date date1 = df1.parse(sDate);
 Date date2 = df2.parse(eDate);
 if (null == date1 || null == date2) {
  return -1;
 }
 long intervalMilli = date2.getTime() - date1.getTime();
 return (int) (intervalMilli / (24 * 60 * 60 * 1000));
 }

 /**
 * 获取两个月份之间的月数
 *
 * @param sDate
 *      -- 起始月yyyy-MM
 * @param eDate
 *      -- 结束月yyyy-MM
 * @return int--天数
 * @throws Exception
 * */
 public static int getMonthOfTwoMonth(String sDate, String eDate)
  throws Exception {

 DateFormat df = new SimpleDateFormat("yyyy-MM");

 Date date1 = df.parse(sDate);
 Date date2 = df.parse(eDate);
 if (null == date1 || null == date2) {
  return -1;
 }

 Calendar c1 = Calendar.getInstance();
 c1.setTime(date1);
 Calendar c2 = Calendar.getInstance();
 c2.setTime(date2);

 int month1 = c1.get(Calendar.YEAR) * 12 + c1.get(Calendar.MONTH);
 int month2 = c2.get(Calendar.YEAR) * 12 + c2.get(Calendar.MONTH);

 return month2 - month1;
 }

 /**比较两个日期
 * @param sDate 起始日期
 * @param eDate 结束日期
 * @param pattern 日期格式
 * @return boolean 返回比较结果
 * @throws Exception
 */
 public static boolean compareDate(String sDate, String eDate, String pattern)
  throws Exception {

 DateFormat df1 = new SimpleDateFormat(pattern);
 Date date1 = df1.parse(sDate);
 Date date2 = df1.parse(eDate);
 if (null == date1 || null == date2) {
  return false;
 }
 long intervalMilli = date2.getTime() - date1.getTime();
 if (intervalMilli > 0) {
  return true;
 }
 return false;
 }

 /**获取两个日期之间的分钟数
 * @param sDate 起始日期 yyyy-MM-dd HH:mm:ss
 * @param eDate 结束日期 yyyy-MM-dd HH:mm:ss
 * @return int--分钟数
 * @throws Exception
 */
 public static int getMinsOfTwoDate(String sDate, String eDate)
  throws Exception {

 DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Date date1 = df1.parse(sDate);
 Date date2 = df2.parse(eDate);
 if (null == date1 || null == date2) {
  return -1;
 }
 long intervalMilli = date2.getTime() - date1.getTime();
 return (int) (intervalMilli / (60 * 1000));
 }

 /**
 * 获取当前系统时间的字符串
 *
 * @return String -- 当天的整个日期字符串,年月日时分秒,返回格式yyyy-MM-dd HH:mm:ss
 * @throws Exception
 * */
 public static String getToDayAllStr() throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**
 * 获取当前系统日期的字符串
 *
 * @return String-- 当天的年月日字符串,返回格式 yyyy-MM-dd
 * @throws Exception
 * */
 public static String getToDayDateStr() throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**
 * 获取当前系统日期的字符串
 *
 * @return String -- 当天的年月日字符串,返回格式 yyyyMMdd
 * */
 public static String getToDayYmd() throws Exception {
 DateFormat df = new SimpleDateFormat("yyyyMMdd");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**获取当前系统时间的指定类型字符串
 * @param pattern 指定的格式
 * @return String-- 当天的指定类型的字符串
 * @throws Exception
 */
 public static String getToDayStrByPattern(String pattern) throws Exception {
 DateFormat df = new SimpleDateFormat(pattern);
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**
 * 获取当前系统时间的字符串
 *
 * @return String 当天的时分秒字符串,返回格式HH:mm:ss
 * */
 public static String getToDayHmsStr() throws Exception {
 DateFormat df = new SimpleDateFormat("HH:mm:ss");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**
 * 获取当前系统时间的字符串
 *
 * @return String -- 当天的时分秒字符串,返回格式HHmmss
 * */
 public static String getToDayHms() throws Exception {
 DateFormat df = new SimpleDateFormat("HHmmss");
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**获取当前系统指定格式的时间的字符串
 * @param pattern 指定格式
 * @return String 当前系统指定格式时间字符串
 * @throws Exception
 */
 public static String getToDayHmsByPattern(String pattern) throws Exception {
 DateFormat df = new SimpleDateFormat(pattern);
 Date date = new Date(System.currentTimeMillis());
 String str = df.format(date);
 return str;
 }

 /**
 * 获取指定日期的时刻字符串
 *
 * @param dayStr
 *      (yyyy-MM-dd HH:mm:ss)
 * @return String -- 当天的时分秒字符串,返回格式:HHmmss
 * */
 public static String getHmsStrForDateTime(String dayStr) throws Exception {
 DateFormat df = new SimpleDateFormat("HHmmss");
 DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String str = df.format(df2.parse(dayStr));
 return str;
 }

 /**
 * 日期格式转换 oldPattern 转成 newPattern
 *
 * @param str 要转换格式的日期字符串
 * @param oldPattern 原有格式
 * @param newPattern 目标格式
 * @return String转换格式化后的字符串
 * @throws Exception
 */
 public static String changeDateType(String str, String oldPattern, String newPattern) throws Exception {
 DateFormat df = new SimpleDateFormat(oldPattern);
 DateFormat df1 = new SimpleDateFormat(newPattern);
 return df1.format(df.parse(str));
 }

 /**
 * 获取输入日期的前后几小时的日期时间
 *
 * @param date基准日期yyyy-MM-dd HH:mm:ss
 * @param dayMark找基准日期
 *      +代表往后,-代表往前
 * @return
 * @throws Exception
 *
 * */
 public static String getOtherHour(String date, int dayMark)
  throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.HOUR_OF_DAY, dayMark);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime;
 return strStart;
 }

 /**
 * 获取前后分钟数
 *
 * @param date yyyy-MM-dd HH:mm:ss
 * @param minuteMark 前后标识+-数值
 * @return 返回
 * @throws Exception
 */
 public static String getOtherMinute(String date, int minuteMark)
  throws Exception {
 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Date dt = df.parse(date);
 Calendar c = Calendar.getInstance();
 c.setTime(dt);
 c.add(Calendar.MINUTE, minuteMark);
 String mDateTime = df.format(c.getTime());
 String strStart = mDateTime;
 return strStart;
 }

 /**
 * 解析字符串为Date类型
 * @param date 要被解析的日期字符串
 * @param pattern 类型格式,默认yyyy-MM-dd HH:mm:ss
 * @return Date 被解析后的日期
 * @throws Exception
 */
 public static Date parseDate(String date, String pattern) throws Exception {
 Date returnDate = null;
 if (pattern == null || pattern.equals("") || pattern.equals("null")) {
  pattern = "yyyy-MM-dd HH:mm:ss";
 }
 java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
 try {
  returnDate = sdf.parse(date);
 } catch (Exception e) {
  e.printStackTrace();
 }
 return returnDate;
 }

 /**
 * 格式化Date类型日期
 * @param date Date类型日期
 * @param pattern 类型格式
 * @return String,被格式化后的日期
 * @throws Exception
 */
 public static String formatDate(Date date, String pattern) throws Exception {
 String returnDate = null;

 if (date == null) {
  return "";
 }

 if (pattern == null || pattern.equals("") || pattern.equals("null")) {
  pattern = "yyyy-MM-dd HH:mm:ss";
 }

 java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(pattern);
 returnDate = sdf.format(date);

 return returnDate;
 }

 /**
 * 得到当前月份yyyy-MM;
 *
 * @return String
 */
 public static String getSystemMonth() {
 java.util.Date date = new java.util.Date();
 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
 String mDateTime1 = formatter.format(date);
 return mDateTime1;
 }

 /**
 * 获取月所在年的最后一个月
 * @param month 月份
 * @param m
 * @return
 * @throws Exception
 */
 public static String getYearLastMonth(String month, int m) throws Exception {
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");

 Date newDate = new Date();
 newDate = format.parse(month);
 Calendar c = Calendar.getInstance();
 c.setTime(newDate);
 c.add(Calendar.YEAR, m);

 newDate.setTime(c.getTimeInMillis());

 return format.format(newDate).substring(0, 4) + "-12";
 }

 /**
 * 获取前后月份
 * + 往后推迟m月
 *
 * @param month
 * @param m
 * @return
 * @throws Exception
 */
 public static String getOtherMonth(String month, int m) throws Exception {
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");

 Date newDate = new Date();
 newDate = format.parse(month);
 Calendar c = Calendar.getInstance();
 c.setTime(newDate);
 c.add(Calendar.MONTH, m);

 newDate.setTime(c.getTimeInMillis());

 return format.format(newDate);
 }

 /**
 * 获取前后月份+ 往后推迟m月
 *
 * @param month
 * @param m
 * @return
 * @throws Exception
 */
 public static String getOtherMonthYMD(String month, int m) throws Exception {
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

 Date newDate = new Date();
 newDate = format.parse(month);
 Calendar c = Calendar.getInstance();
 c.setTime(newDate);
 c.add(Calendar.MONTH, m);

 newDate.setTime(c.getTimeInMillis());

 return format.format(newDate);
 }

 /**
 * 根据年月字符串得到那个月的总天数
 * @param monthStr yyyy-MM
 * @return int 总天数
 * @throws Exception
 */
 public static int getDaysOfMonth(String monthStr) throws Exception {

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
 Date date = format.parse(monthStr);
 Calendar calendar = new GregorianCalendar();
 calendar.setTime(date);
 int dayNum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
 return dayNum;
 }

 /**
 * 获取指定时刻前后指定步长的时刻
 *
 * @param time
 *      时刻HH:mm:ss
 * @param m
 *      步长(+-m) 0:输出原来的时刻,+1输出后一个时刻,-1输出前一个时刻
 * @return String HH:mm:ss
 * @throws Exception
 */
 public static String getBeforeAfterTimeForMin(String time, int m)
  throws Exception {
 Calendar now = Calendar.getInstance();
 SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
 Date newDate = new Date();
 newDate = format.parse(time);
 now.setTime(newDate);
 now.add(Calendar.MINUTE, m);
 return format.format(now.getTime());
 }

 /**
 * 获取指定格式的前后时间
 *
 * @param time
 * @param m
 *      (0:输出原来的时刻,+1输出后一个时刻,-1输出前一个时刻)
 * @param pattern
 *      类型的格式必须被time的格式所包含
 * @return
 * @throws Exception
 */
 public static String getBeforeAfterDateTimeByTime(String time, int m,
  String pattern) throws Exception {
 Calendar now = Calendar.getInstance();
 SimpleDateFormat sdf = new SimpleDateFormat(pattern);

 Date newDate = new Date();
 newDate = sdf.parse(time);
 now.setTime(newDate);
 now.add(Calendar.MINUTE, m);

 return sdf.format(now.getTime());
 }

}

这就是整个工具类了,供君参考。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java日期处理工具类

    本文针对日期处理进行学习使用,主要分为两部分,下面为大家具体介绍一下 第一部分:日期处理基础知识 Date 类 作用:最主要的作用就是获得当前时间 将日期转换为标准格式 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(date); System.out.println("2015-10-16 1

  • java DateUtil工具类时间戳类型转换详解

    本文实例为大家分享了DateUtil工具类时间戳类型转换的具体代码,供大家参考,具体内容如下 package com.sinosoft.media.sms.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { //当前时间 //public static Date DATE_NOW=new Date(); /*

  • Java实现将数字日期翻译成英文单词的工具类实例

    本文实例讲述了Java实现将数字日期翻译成英文单词的工具类.分享给大家供大家参考,具体如下: package com.sunyard.etp.ag.util; import java.math.BigDecimal; import java.util.Arrays; public class DateEngUtil { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated meth

  • Java日期工具类DateUtils实例详解

    在项目开发中,日期是我们必不可少的的一部分,本文将总结代码开发中的关于日期常用的一些方法,以方便自己后期使用.下面直接上菜了: package com.example.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.ut

  • java针对于时间转换的DateUtils工具类

    本文实例为大家分享了时间转换的DateUtils工具类,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; /** * 时间日期工具类 * *

  • 实例解析Java日期格式工具类DateUtil.java

    话不多说,请看代码: DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.util.Date; import pers.kangxu.datautils.common.exception.DefineException; /** * * <b> * 处理日期 工具类 * </b> * @author kangxu * */ public c

  • Java 中DateUtils日期工具类的实例详解

    Java 中DateUtils日期工具类的实例详解 介绍 在java中队日期类型的处理并不方便,通常都需要借助java.text.SimpleDateFormat类来实现日期类型 和字符串类型之间的转换,但是在jdk1.8之后有所改善,jdk1.7以及之前的版本处理日期类型并不方便, 可以借助Joda Time组件来处理,尤其是日期类型的一些数学操作就更是不方便. java代码 /** * * 日期工具类 java对日期的操作一直都很不理想,直到jdk1.8之后才有了本质的改变. * 如果使用的

  • java日期操作工具类(获取指定日期、日期转换、相隔天数)

    本文实例为大家分享了java日期操作工具类,获取指定日期前一天.后一天:日期转换:两个日期之间相隔天数等工具类,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class

  • java日期工具类实例分享

    复制代码 代码如下: /** * 日期工具类 * 默认使用 "yyyy-MM-dd HH:mm:ss" 格式化日期 */public final class DateUtils {/*** 英文简写(默认)如:2010-12-01*/public static String FORMAT_SHORT = "yyyy-MM-dd";/*** 英文全称  如:2010-12-01 23:15:06*/public static String FORMAT_LONG =

  • Java日期操作方法工具类实例【包含日期比较大小,相加减,判断,验证,获取年份等】

    本文实例讲述了Java日期操作方法工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.http.util.TextUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.regex.Patte

随机推荐