【开发笔记】-时间工具类
package com.cjy.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class DateTimeUtil { private static int weeks = 0; /** * 时间格式:yyyy-MM-dd HH:mm:ss */ private static final String yyyy_MM_dd_HH__mm_ss = "yyyy-MM-dd HH:mm:ss"; /** * 时间格式:yyyy-MM-dd */ private static final String yyyy_MM_dd = "yyyy-MM-dd"; /** * 时间格式:yyyy-MM */ private static final String yyyy_MM = "yyyy-MM"; /** * 获得当前日期与本周一相差的天数 */ public static int getMondayPlus() { Calendar cd = Calendar.getInstance(); // 获得今天是一周的第几天,星期日是第一天,星期二是第二天...... int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; if (dayOfWeek == 1) { return 0; } else { return 1 - dayOfWeek; } } /** * 获得本周星期日的日期 */ public static String getCurrentWeekday() { weeks = 0; int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 6); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获得本周一的日期 */ public static String getMondayOFWeek() { weeks = 0; int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获得上周星期日的日期 */ public static String getPreviousWeekSunday() { weeks = 0; weeks--; int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获得上周星期一的日期 */ public static String getPreviousWeekday() { weeks = 0; weeks--; int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获得下周星期一的日期 */ public static String getNextMonday() { weeks++; int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获得下周星期日的日期 */ public static String getNextSunday() { int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; } /** * 获取当天日期 * * @param dateformat */ public static String getNowTime(String dateformat) { Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 格式化时间格式 String hehe = dateFormat.format(now); return hehe; } /** * 获得前天的日期 * * @param dateformat */ public static String getPreviousTimes(String dateformat) { Date date = new Date(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(calendar.DATE, -2);// 把日期往后增加一天.整数往后推,负数往前移动 date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 SimpleDateFormat formatter = new SimpleDateFormat(dateformat); String dateString = formatter.format(date); return dateString; } /** * 获得昨天的日期 * * @param dateformat */ public static String getPreviousTime(String dateformat) { Date date = new Date(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(calendar.DATE, -1);// 把日期往前减少一天.整数往后推,负数往前移动 date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 SimpleDateFormat formatter = new SimpleDateFormat(dateformat); String dateString = formatter.format(date); return dateString; } /** * 获得明天的日期 * * @param dateformat */ public static String getTomorrowTime(String dateformat) { Date date = new Date(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.add(calendar.DATE, 1);// 把日期往前减少一天.整数往后推,负数往前移动 date = calendar.getTime(); // 这个时间就是日期往后推一天的结果 SimpleDateFormat formatter = new SimpleDateFormat(dateformat); String dateString = formatter.format(date); return dateString; } /** * 获得当月的第一天(0时0分0秒) * * @return 类似(2014-07-31 00:00:00) */ public static String getNowFirstMonthDay() { SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天 String first = formatter.format(c.getTime()); if(first != null && !first.equals("")){ first += " 00:00:00"; } return first; } /** * 获得当月的最后一天(23时59分59秒) * * @return 类似(2014-07-31 23:59:59) */ public static String getNowLastMonthDay() { SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd); Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = formatter.format(ca.getTime()); if(last != null && !last.equals("")){ last += " 23:59:59"; } return last; } /** * 获得当月的第一天(0时0分0秒) * * @return 类似(2014-07-31 00:00:00) */ public static String getNowFirstMonthDay(String dateformat) { SimpleDateFormat formatter = new SimpleDateFormat(dateformat); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天 String first = formatter.format(c.getTime()); return first; } /** * 获得当月最后一天 * * @param dateformat * 时间格式 * @return */ public static String getNowLastMonthDay(String dateformat) { SimpleDateFormat formatter = new SimpleDateFormat(dateformat); Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = formatter.format(ca.getTime()); return last; } /** * 获得指定Date类型日期月份的第一天 * * @param date * Date类型的时间 * @param dateformat * 时间格式 * @return */ public static String getFirstMonthDay(Date date, String dateformat) { SimpleDateFormat formatter = new SimpleDateFormat(dateformat); Calendar c = Calendar.getInstance(); c.setTime(date); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天 String first = formatter.format(c.getTime()); return first; } /** * 获得指定Date类型日期月份的最后一天 * * @param date * Date类型的时间 * @param dateformat * 时间格式 * @return */ public static String getLastMonthDay(Date date, String dateformat) { SimpleDateFormat formatter = new SimpleDateFormat(dateformat); Calendar c = Calendar.getInstance(); c.setTime(date); c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = formatter.format(c.getTime()); return last; } public static int getCountDay(int year, int month) { month = month - 1; Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month);// Java月份才0开始算 6代表上一个月7月 return cal.getActualMaximum(Calendar.DATE); } /** * 获取指定时间的月份(如果月份小于10,则返回01-09形式的时间) * * @param date * Date格式的时间 * @return 01-12 */ public static String getMonth(Date date) { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM); String nowMonthTime = sdf.format(date); return nowMonthTime.substring(5, 7); } /** * 获取yyyy-MM格式的时间 * * @param date * Date格式的时间 * @param format * 指定时间格式 * @return 返回yyyy-MM格式的时间 */ public static String getTimeByFormat(Date date, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(date); } /** * 将字符串时间转变为java.util.Date格式时间 * * @param time * 字符串格式时间 * @return java.util.Date */ public static Date strTimeToDate(String time) { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM); Date date = null; try { date = sdf.parse(time); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 将字符串时间转变为java.util.Date格式时间,格式自定 * * @param time * 字符串格式时间 * @param format * @return java.util.Date */ public static Date strTimeToDate(String time,String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); Date date = null; try { date = sdf.parse(time); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 获取指定时间的上个月的yyyy-MM格式的时间 * * @param date * @return */ public static String getLastMonth(Date date) { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int months = calendar.get(Calendar.MONTH); calendar.set(Calendar.MONTH, (months - 1)); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); Date strDateTo = calendar.getTime(); return sdf.format(strDateTo); } /** * 判断时间date1是否在时间date2之前<br/> * 如果第一个时间小于第二个时间返回true,反之返回false * (参数时间格式为yyyy-MM-dd) * @param date1 要比较的第一个时间 * @param date2 要比较的第二个时间 * @return date1<date2 返回true,date1>date2返回false,相等时等同于date1>date2 */ public static boolean isDateBeforeToBoolean(String date1, String date2) { try { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd); return sdf.parse(date1).before(sdf.parse(date2)); } catch (ParseException e) { System.out.print("[SYS] " + e.getMessage()); return false; } } /** * 判断时间date1是否在时间date2之后<br/> * 如果第一个时间大于于第二个时间返回true,反之返回false * (参数时间格式为yyyy-MM-dd) * @param date1 要比较的第一个时间 * @param date2 要比较的第二个时间 * @return date1>date2 返回true,date1<date2返回false,相等时等同于date1<date2 */ public static boolean isDateAfterToBoolean(String date1, String date2) { try { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd); return sdf.parse(date1).after(sdf.parse(date2)); } catch (ParseException e) { System.out.print("[SYS] " + e.getMessage()); return false; } } /** * (时间比较)获取两个yyy-MM-dd格式时间中较小的时间,如果时间相等,则返回第二个时间<br/> * (参数时间格式为yyyy-MM-dd) * * @param date1 * 要比较的第一个时间 * @param date2 * 要比较的第二个时间 * @return 返回小的时间 */ public static String getBeforeTime(String date1, String date2) { if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){ return null; } try { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd); boolean falg = sdf.parse(date1).before(sdf.parse(date2)); if (falg) { return date1; } else { return date2; } } catch (ParseException e) { System.out.print("[SYS] " + e.getMessage()); return null; } } /** * (时间比较)获取两个yyy-MM-dd格式时间中较大的时间,如果时间相等,则返回第二个时间<br/> * (参数时间格式为yyyy-MM-dd) * * @param date1 * 要比较的第一个时间 * @param date2 * 要比较的第二个时间 * @return 返回大的时间 */ public static String getAfterTime(String date1, String date2) { if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){ return null; } try { SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd); boolean falg = sdf.parse(date1).after(sdf.parse(date2)); if (falg) { return date1; } else { return date2; } } catch (ParseException e) { System.out.print("[SYS] " + e.getMessage()); return null; } } /** * 将时间戳转换为时间 * @param s 时间戳 * @return */ public static String stampToDate(String s){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long lt = new Long(s); Date date = new Date(lt*1000); res = simpleDateFormat.format(date); return res; } }
package com.cjy.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 日期转换工具。<br/> * <br/> * 本类用于日期格式转换,其中包含了文本转日期、日期转文本,转换为特定格式的日期(字符串),根据变量改变日期等日期常用操作。<br/> * <br/> * <b>Example:</b><br/> * <br/> * * @author 李凯飞 * @version Ver 1.0.1 2014-04-21 改订 * @since 1.0 */ public class DateUtil { /** * 获取当前时间格式yyy-MM-dd HH:mm:ss时间字符串 * * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static String getNowDateStr() { return dateConvertStr(new Date(), "yyyy-MM-dd HH:mm:ss"); } /** * 获取当前时间格式yyy-MM-dd时间字符串 * * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static String getNowDateDayStr() { return dateConvertStr(new Date(), "yyyy-MM-dd"); } /** * 将Date类型转换成yyy-MM-dd HH:mm:ss 字符串类型 * * @param Date * date * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static String dateConvertStr(Date date) { return dateConvertStr(date, "yyyy-MM-dd HH:mm:ss"); } /** * 将Date类型转换成yyy-MM-dd字符串类型 * * @param Date * date * @param String * format 如:yyyy-MM-dd HH:mm:ss * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static String dateConvertDayStr(Date date) { return dateConvertStr(date, "yyyy-MM-dd"); } /** * 将Date类型转换成字符串类型 * * @param Date * date * @param String * format 如:yyyy-MM-dd HH:mm:ss * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static String dateConvertStr(Date date, String format) { return (date == null) ? null : new SimpleDateFormat(format) .format(date); } /** * 时间格式字符串转换成Date类型 * * @param String * date * @param String * format 如:yyyy-MM-dd HH:mm:ss * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static Date dateStrConvertDate(String date, String format) { try { SimpleDateFormat simpledateformat = new SimpleDateFormat(format); Date newdate = simpledateformat.parse(date); return newdate; } catch (Exception e) { return null; } } /** * 根据日期获取当前为星期几 * * @param date * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static int getWeek(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int weekno = cal.get(Calendar.DAY_OF_WEEK) - 1; if (weekno == 0) weekno = 7; return weekno; } /** * 计算两个时间间隔多少天 * * @param startday * @param endday * @return * @author: NQY * @Createtime: Sep 14, 2012 */ public static int getIntervalDays(Date startday, Date endday) { if (startday.after(endday)) { Date cal = startday; startday = endday; endday = cal; } long sl = startday.getTime(); long el = endday.getTime(); long ei = el - sl; return (int) (ei / (1000 * 60 * 60 * 24)); } /** * 指定时间对象,根据日历的规则,为给定的日历字段添加或减去指定的时间量,返回时间对象 * * @param date * Date类型 * @param field * int 日历字段,如:Calendar.DAY_OF_MONTH * @param amount * int 为字段添加的日期或时间量。 * @return Date值 * @author: NQY * @Createtime: Sep 14, 2012 */ public static Date getDate(Date date, int field, int amount) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(field, amount); return cal.getTime(); } /** * 指定时间对象,根据日历的规则,为给定的日历字段添加或减去指定的天数,返回时间对象 * * @param date * Date类型 * @param day * 天 int 为字段添加的日期或时间量。 * @return Date值 * @author: NQY * @Createtime: Sep 14, 2012 */ public static Date getDateMonth(Date date, int day) { return getDate(date, Calendar.MONTH, day); } /** * 获取指定时间在当年中的第几周 * * @param date * Date类型 * @return * @author: NQY * @Createtime: Aug 13, 2012 */ public static int getWeekNumber(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.WEEK_OF_YEAR); } /** * 获取当前时间在当年中的第几周 * * @return * @author: NQY * @Createtime: Aug 13, 2012 */ public static int getWeekNumber() { return getWeekNumber(new Date()); } /** * * author: wqm * Created: Apr 15, 2014 2:24:17 PM * <font color="red">Description:取当前时间 后 2分钟 和 后10分钟</font> * * @return String 如 10#40#10#50# */ public static String getUpCheckTime(int upspace, int checkspace){ StringBuilder sb = new StringBuilder(""); String currenttime = dateConvertStr(new Date(), "HH:mm:ss"); String[] currentArr = currenttime.split(":"); //上传时间间隔 if(Integer.parseInt(currentArr[1])+upspace >= 60){ sb.append(Integer.parseInt(currentArr[0])+1).append("#").append(Integer.parseInt(currentArr[1])+upspace-60).append("#"); }else{ sb.append(currentArr[0]).append("#").append(Integer.parseInt(currentArr[1])+upspace).append("#"); } //签到时间间隔 if(Integer.parseInt(currentArr[1])+checkspace >= 60){ sb.append(Integer.parseInt(currentArr[0])+1).append("#").append(Integer.parseInt(currentArr[1])+checkspace-60).append("#"); }else{ sb.append(currentArr[0]).append("#").append(Integer.parseInt(currentArr[1])+checkspace).append("#"); } return sb.toString(); } /** * 获得该月第一天 * * @param year * @param month * @return */ public static String getFirstDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); // 设置年份 cal.set(Calendar.YEAR, year); // 设置月份 cal.set(Calendar.MONTH, month - 1); // 获取某月最小天数 int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH); // 设置日历中月份的最小天数 cal.set(Calendar.DAY_OF_MONTH, firstDay); // 格式化日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String firstDayOfMonth = sdf.format(cal.getTime()); return firstDayOfMonth; } /** * 获得该月最后一天 * * @param year * @param month * @return */ public static String getLastDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); // 设置年份 cal.set(Calendar.YEAR, year); // 设置月份 cal.set(Calendar.MONTH, month - 1); // 获取某月最大天数 int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 设置日历中月份的最大天数 cal.set(Calendar.DAY_OF_MONTH, lastDay); // 格式化日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String lastDayOfMonth = sdf.format(cal.getTime()); return lastDayOfMonth; } public static void main(String[] args) { Date a = getDate(new Date(), Calendar.MONTH, 1); String a1 = dateConvertDayStr(a); System.out.println(a1); } }
package com.cjy.util;
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;
public class DateTimeUtil {private static int weeks = 0;
/** * 时间格式:yyyy-MM-dd HH:mm:ss */private static final String yyyy_MM_dd_HH__mm_ss = "yyyy-MM-dd HH:mm:ss";/** * 时间格式:yyyy-MM-dd */private static final String yyyy_MM_dd = "yyyy-MM-dd";/** * 时间格式:yyyy-MM */private static final String yyyy_MM = "yyyy-MM";
/** * 获得当前日期与本周一相差的天数 */public static int getMondayPlus() {Calendar cd = Calendar.getInstance();// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1;if (dayOfWeek == 1) {return 0;} else {return 1 - dayOfWeek;}}
/** * 获得本周星期日的日期 */public static String getCurrentWeekday() {weeks = 0;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
/** * 获得本周一的日期 */public static String getMondayOFWeek() {weeks = 0;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
/** * 获得上周星期日的日期 */public static String getPreviousWeekSunday() {weeks = 0;weeks--;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
/** * 获得上周星期一的日期 */public static String getPreviousWeekday() {weeks = 0;weeks--;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
/** * 获得下周星期一的日期 */public static String getNextMonday() {weeks++;int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
/** * 获得下周星期日的日期 */public static String getNextSunday() {int mondayPlus = getMondayPlus();GregorianCalendar currentDate = new GregorianCalendar();currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);Date monday = currentDate.getTime();DateFormat df = DateFormat.getDateInstance();String preMonday = df.format(monday);return preMonday;}
/** * 获取当天日期 * * @param dateformat */public static String getNowTime(String dateformat) {Date now = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 格式化时间格式String hehe = dateFormat.format(now);return hehe;}
/** * 获得前天的日期 * * @param dateformat */public static String getPreviousTimes(String dateformat) {Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.add(calendar.DATE, -2);// 把日期往后增加一天.整数往后推,负数往前移动date = calendar.getTime(); // 这个时间就是日期往后推一天的结果SimpleDateFormat formatter = new SimpleDateFormat(dateformat);String dateString = formatter.format(date);return dateString;}
/** * 获得昨天的日期 * * @param dateformat */public static String getPreviousTime(String dateformat) {Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.add(calendar.DATE, -1);// 把日期往前减少一天.整数往后推,负数往前移动date = calendar.getTime(); // 这个时间就是日期往后推一天的结果SimpleDateFormat formatter = new SimpleDateFormat(dateformat);String dateString = formatter.format(date);return dateString;}/** * 获得明天的日期 * * @param dateformat */public static String getTomorrowTime(String dateformat) {Date date = new Date();Calendar calendar = new GregorianCalendar();calendar.setTime(date);calendar.add(calendar.DATE, 1);// 把日期往前减少一天.整数往后推,负数往前移动date = calendar.getTime(); // 这个时间就是日期往后推一天的结果SimpleDateFormat formatter = new SimpleDateFormat(dateformat);String dateString = formatter.format(date);return dateString;}
/** * 获得当月的第一天(0时0分0秒) * * @return 类似(2014-07-31 00:00:00) */public static String getNowFirstMonthDay() {SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天String first = formatter.format(c.getTime());if(first != null && !first.equals("")){first += " 00:00:00";}return first;}
/** * 获得当月的最后一天(23时59分59秒) * * @return 类似(2014-07-31 23:59:59) */public static String getNowLastMonthDay() {SimpleDateFormat formatter = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH));String last = formatter.format(ca.getTime());if(last != null && !last.equals("")){last += " 23:59:59";}return last;}/** * 获得当月的第一天(0时0分0秒) * * @return 类似(2014-07-31 00:00:00) */public static String getNowFirstMonthDay(String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar c = Calendar.getInstance();c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天String first = formatter.format(c.getTime());return first;}
/** * 获得当月最后一天 * * @param dateformat * 时间格式 * @return */public static String getNowLastMonthDay(String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar ca = Calendar.getInstance();ca.set(Calendar.DAY_OF_MONTH,ca.getActualMaximum(Calendar.DAY_OF_MONTH));String last = formatter.format(ca.getTime());return last;}
/** * 获得指定Date类型日期月份的第一天 * * @param date * Date类型的时间 * @param dateformat * 时间格式 * @return */public static String getFirstMonthDay(Date date, String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar c = Calendar.getInstance();c.setTime(date);c.add(Calendar.MONTH, 0);c.set(Calendar.DAY_OF_MONTH, c.getMinimum(Calendar.DAY_OF_MONTH));// 设置为1号,当前日期既为本月第一天String first = formatter.format(c.getTime());return first;}
/** * 获得指定Date类型日期月份的最后一天 * * @param date * Date类型的时间 * @param dateformat * 时间格式 * @return */public static String getLastMonthDay(Date date, String dateformat) {SimpleDateFormat formatter = new SimpleDateFormat(dateformat);Calendar c = Calendar.getInstance();c.setTime(date);c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));String last = formatter.format(c.getTime());return last;}
public static int getCountDay(int year, int month) {month = month - 1;Calendar cal = Calendar.getInstance();cal.set(Calendar.YEAR, year);cal.set(Calendar.MONTH, month);// Java月份才0开始算 6代表上一个月7月return cal.getActualMaximum(Calendar.DATE);}
/** * 获取指定时间的月份(如果月份小于10,则返回01-09形式的时间) * * @param date * Date格式的时间 * @return 01-12 */public static String getMonth(Date date) {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);String nowMonthTime = sdf.format(date);return nowMonthTime.substring(5, 7);}
/** * 获取yyyy-MM格式的时间 * * @param date * Date格式的时间 * @param format * 指定时间格式 * @return 返回yyyy-MM格式的时间 */public static String getTimeByFormat(Date date, String format) {SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.format(date);}
/** * 将字符串时间转变为java.util.Date格式时间 * * @param time * 字符串格式时间 * @return java.util.Date */public static Date strTimeToDate(String time) {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);Date date = null;try {date = sdf.parse(time);} catch (ParseException e) {e.printStackTrace();}return date;}/** * 将字符串时间转变为java.util.Date格式时间,格式自定 * * @param time * 字符串格式时间 * @param format * @return java.util.Date */public static Date strTimeToDate(String time,String format) {SimpleDateFormat sdf = new SimpleDateFormat(format);Date date = null;try {date = sdf.parse(time);} catch (ParseException e) {e.printStackTrace();}return date;}
/** * 获取指定时间的上个月的yyyy-MM格式的时间 * * @param date * @return */public static String getLastMonth(Date date) {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM);Calendar calendar = Calendar.getInstance();calendar.setTime(date);int months = calendar.get(Calendar.MONTH);calendar.set(Calendar.MONTH, (months - 1));calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));Date strDateTo = calendar.getTime();return sdf.format(strDateTo);}
/** * 判断时间date1是否在时间date2之前<br/> * 如果第一个时间小于第二个时间返回true,反之返回false * (参数时间格式为yyyy-MM-dd) * @param date1 要比较的第一个时间 * @param date2 要比较的第二个时间 * @return date1<date2 返回true,date1>date2返回false,相等时等同于date1>date2 */public static boolean isDateBeforeToBoolean(String date1, String date2) {try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);return sdf.parse(date1).before(sdf.parse(date2));} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return false;}}/** * 判断时间date1是否在时间date2之后<br/> * 如果第一个时间大于于第二个时间返回true,反之返回false * (参数时间格式为yyyy-MM-dd) * @param date1 要比较的第一个时间 * @param date2 要比较的第二个时间 * @return date1>date2 返回true,date1<date2返回false,相等时等同于date1<date2 */public static boolean isDateAfterToBoolean(String date1, String date2) {try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);return sdf.parse(date1).after(sdf.parse(date2));} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return false;}}
/** * (时间比较)获取两个yyy-MM-dd格式时间中较小的时间,如果时间相等,则返回第二个时间<br/> * (参数时间格式为yyyy-MM-dd) * * @param date1 * 要比较的第一个时间 * @param date2 * 要比较的第二个时间 * @return 返回小的时间 */public static String getBeforeTime(String date1, String date2) {if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){return null;}try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);boolean falg = sdf.parse(date1).before(sdf.parse(date2));if (falg) {return date1;} else {return date2;}} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return null;}}
/** * (时间比较)获取两个yyy-MM-dd格式时间中较大的时间,如果时间相等,则返回第二个时间<br/> * (参数时间格式为yyyy-MM-dd) * * @param date1 * 要比较的第一个时间 * @param date2 * 要比较的第二个时间 * @return 返回大的时间 */public static String getAfterTime(String date1, String date2) {if(date1 != null && date1.length() > 0 && date2 != null && date2.length() > 0){return null;}try {SimpleDateFormat sdf = new SimpleDateFormat(DateTimeUtil.yyyy_MM_dd);boolean falg = sdf.parse(date1).after(sdf.parse(date2));if (falg) {return date1;} else {return date2;}} catch (ParseException e) {System.out.print("[SYS] " + e.getMessage());return null;}}
/** * 将时间戳转换为时间 * @param s 时间戳 * @return */ public static String stampToDate(String s){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long lt = new Long(s); Date date = new Date(lt*1000); res = simpleDateFormat.format(date); return res; }}