/** * 2017年6月26日下午8:54:00 */ package com.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; /** * * @author huangtao * 2017年6月26日下午8:54:00 * bkm * @parameter * TODO * */ public class DateUtil2 { public static final String DATE_NORMAL_FORMAT = "yyyy-MM-dd"; public static final String DATETIME_NORMAL_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_COMPACT_FORMAT = "yyyyMMdd"; public static final String DATETIME_COMPACT_FORMAT = "yyyyMMddHHmmss"; public static final String YM_NORMAL_FORMAT = "yyyy-MM"; public static final String YM_COMPACT_FORMAT = "yyyyMM"; /** * String转Timestamp * @param dateStr * @return * @author yup * 2015-1-17 */ public static Timestamp stringToTimestamp(String dateStr) { try { if(dateStr.length() <= 10) { dateStr += " 00:00:00"; } return Timestamp.valueOf(dateStr); } catch (Exception e) { e.printStackTrace(); return null; } } /** * String转Date * @param dateStr * @param format * @return * @author yup * 2015-1-17 */ public static Date stringToDate(String dateStr, String format) { if(dateStr == null || "".equals(dateStr)){ return null; } Date date = null; //注意format的格式要与日期String的格式相匹配 SimpleDateFormat sdf = new SimpleDateFormat(format); try { date = sdf.parse(dateStr); } catch (Exception e) { e.printStackTrace(); } return date; } /** * Date转String * @param date * @param format * @return * @author yup * 2015-1-17 */ public static String dateToString(Date date, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); String currentDate = sdf.format(date); return currentDate; } /** * Date转Timestamp * @param date * @return * @author yup * 2015-1-18 */ public static Timestamp dateToTimestamp(Date date) { Timestamp ts = new Timestamp(date.getTime()); return ts; } /** * Timestamp转String * @param ts * @return * @author yup * 2015-1-17 */ public static String timestampToString(Timestamp ts) { String tsStr = null; SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT); try { tsStr = sdf.format(ts); } catch (Exception e) { e.printStackTrace(); } return tsStr; } /** * Timestamp转Date * @param ts * @return * @author yup * 2015-1-17 */ public static Date timestampToDate(Timestamp ts) { return ts; } /** * 获得当前时间并格式化:yyyy-MM-dd HH:mm:ss * @return */ public static String getCurrentTimeNormal() { SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 获得当前时间并格式化:yyyyMMddHHmmss * @return */ public static String getCurrentTimeCompact() { SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_COMPACT_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 获得当前时间并格式化:yyyy-MM-dd * @return */ public static String getCurrentDateNormal() { SimpleDateFormat sdf = new SimpleDateFormat(DATE_NORMAL_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 获得当前时间并格式化:yyyyMMdd * @return */ public static String getCurrentDateCompact() { SimpleDateFormat sdf = new SimpleDateFormat(DATE_COMPACT_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 将20101202时间格式化为2010-12-02 * * @param DateString 时间格式:yyyyMMdd * @return */ public static String getDateCompactToNormal(String DateString){ StringBuilder sb = new StringBuilder(); sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8)); return sb.toString(); } /** * 将20101202101423时间格式化为2010-12-02 10:14:23 * * @param DateString 时间格式:yyyyMMddHHmmss * @return */ public static String getDateTimeCompactToNormal(String DateString){ StringBuilder sb = new StringBuilder(); sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8)) .append(" ").append(DateString.substring(8, 10)).append(":").append(DateString.substring(10, 12)).append(":").append(DateString.substring(12)); return sb.toString(); } /** * 把界面输入的时间转为间凑的时间字符串 * 将2010-12-02 10:14:23时间格式化为20101202101423 * @param dateNormalStr String * @return String */ public static String getCompactString(String dateNormalStr) { StringBuffer ret = new StringBuffer(); try { ret.append(dateNormalStr.substring(0, 4)); ret.append(dateNormalStr.substring(5, 7)); ret.append(dateNormalStr.substring(8, 10)); ret.append(dateNormalStr.substring(11, 13)); ret.append(dateNormalStr.substring(14, 16)); ret.append(dateNormalStr.substring(17, 19)); } catch (Exception ex) { // 如果字串不够长度,则返回前面的部分 } return ret.toString(); } /** * 将20101202(101423)时间格式 获得年份 * @param DateString 时间格式:yyyyMMdd(HHmmss) * @return */ public static String getYear(String DateString){ return DateString.substring(0,4); } /** * 将20101202(101423)时间格式 获得月份 * @param DateString 时间格式:yyyyMMdd(HHmmss) * @return */ public static String getMonth(String DateString){ return DateString.substring(4,6); } /** * 将20101202时间格式 获得日期 * @param DateString 时间格式:yyyyMMdd * @return */ public static String getDayNoTime(String DateString){ return DateString.substring(6); } /** * 获取当前日期之前的日期,按天数向前推 * @param numVal * @param dateFormat * @return * @author yup * 2015-1-17 */ public static String getBeforeDatePlusDay(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * 24 * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis - dVal); return currentDate; } /** * 获取当前日期之前的日期,按天数向前推 * @param numVal * @param dateFormat * @return * @author yup * 2015-1-17 */ public static String getAfterDatePlusDay(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * 24 * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis + dVal); return currentDate; } /** * 获取当前日期之前的日期,按小时向前推 * @param numVal * @param dateFormat * @return * @author yup * 2015-1-17 */ public static String getBeforeDatePlusHour(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis - dVal); return currentDate; } /** * 获取当前日期之前的日期,按小时向前推 * @param numVal * @param dateFormat * @return * @author yup * 2015-1-17 */ public static String getAfterDatePlusHour(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis + dVal); return currentDate; } /** * 两个日期相差天数 * @param beginDate * @param endDate * @return * @author yup * 2015-1-18 */ public static int daysBetween(Date beginDate, Date endDate) { Calendar cal = Calendar.getInstance(); cal.setTime(beginDate); long time1 = cal.getTimeInMillis(); cal.setTime(endDate); long time2 = cal.getTimeInMillis(); long between_days = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(between_days)); } /** * 获取某月天数 * @param year * @param month * @return * @author yup * 2015-1-18 */ public static int getMonthdays(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month - 1); return cal.getActualMaximum(Calendar.DATE); } /** * 给时间加减年份 * @param date * @param plusTime * @return * @author yup * 2015-1-17 */ public static Date getDatePlusYear(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, plusTime); Date d = cal.getTime(); return d; } /** * 给时间加减月份 * @param date * @param plusTime * @return * @author yup * 2015-1-17 */ public static Date getDatePlusMonth(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, plusTime); Date d = cal.getTime(); return d; } /** * 给时间加减天数 * @param date * @param plusTime * @return * @author yup * 2015-1-17 */ public static Date getDatePlusDay(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, plusTime); Date d = cal.getTime(); return d; } /** * 给时间加减小时 * @param date * @param plusTime * @return * @author yup * 2015-1-17 */ public static Date getDatePlusHour(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.HOUR, plusTime); Date d = cal.getTime(); return d; } /** * 给时间加减分钟 * @param date * @param plusTime * @return * @author yup * 2015-1-17 */ public static Date getDatePlusMinute(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MINUTE, plusTime); Date d = cal.getTime(); return d; } /** * 给时间加减秒 * @param date * @param plusTime * @return * @author yup * 2015-1-17 */ public static Date getDatePlusSecond(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.SECOND, plusTime); Date d = cal.getTime(); return d; } /** * 返回当前年 * @return * @author yup * 2015-1-17 */ public static int getCurrentYear() { Calendar calendar = Calendar.getInstance(); return calendar.get(1); } /** * 返回当前月 * @return * @author yup * 2015-1-17 */ public static int getCurrentMonth() { Calendar calendar = Calendar.getInstance(); return calendar.get(2) + 1; } /** * 返回当前天 * @return * @author yup * 2015-1-17 */ public static int getCurrentDay() { Calendar calendar = Calendar.getInstance(); return calendar.get(5); } /** * 返回当前小时 * @return * @author yup * 2015-1-17 */ public static int getCurrentHour() { Calendar calendar = Calendar.getInstance(); return calendar.get(11); } /** * 返回当前分钟 * @return * @author yup * 2015-1-17 */ public static int getCurrentMinute() { Calendar calendar = Calendar.getInstance(); return calendar.get(12); } /** * 返回当前秒 * @return * @author yup * 2015-1-17 */ public static int getCurrentSecond() { Calendar calendar = Calendar.getInstance(); return calendar.get(13); } /** * 返回当前年 * @return * @author yup * 2015-1-17 */ public static int getYear(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(1); } /** * 返回当前月 * @return * @author yup * 2015-1-17 */ public static int getMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(2) + 1; } /** * 返回当前天 * @return * @author yup * 2015-1-17 */ public static int getDay(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(5); } /** * 返回当前小时 * @return * @author yup * 2015-1-17 */ public static int getHour(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(11); } /** * 返回当前分钟 * @return * @author yup * 2015-1-17 */ public static int getMinute(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(12); } /** * 返回当前秒 * @return * @author yup * 2015-1-17 */ public static int getSecond(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(13); } /** * * 毫秒数转化成时分秒 * * 2017年6月28日下午9:52:04 * @param time * @return * @parameter * String * */ public static String converLongTimeToStr(long time) { int ss = 1000; int mi = ss * 60; int hh = mi * 60; long hour = (time) / hh; long minute = (time - hour * hh) / mi; long second = (time - hour * hh - minute * mi) / ss; String strHour = hour < 10 ? "0" + hour : "" + hour; String strMinute = minute < 10 ? "0" + minute : "" + minute; String strSecond = second < 10 ? "0" + second : "" + second; if (hour > 0) { return strHour + ":" + strMinute + ":" + strSecond; } else { return strMinute + ":" + strSecond; } } /** * 两个时间相加减,返回相差的天数 * * 2017年7月13日下午9:52:58 * @param date1 * @param date2 * @return * @parameter * long * */ public static long addDay(String date1,String date2){ if(date2.indexOf("/")!=-1){ date2 = date2.replace(" ", "/"); String[] ss = date2.split("/"); date2 = ss[2]+"-"+ss[0]+"-"+ss[1]+" "+ss[3]; } if(date1.indexOf("/")!=-1){ date1 = date1.replace(" ", "/"); String[] ss = date1.split("/"); date1 = ss[2]+"-"+ss[0]+"-"+ss[1]+" "+ss[3]; } SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); long day = 0; try { long day1 = format.parse(date1).getTime(); long day2 = format.parse(date2).getTime(); day = (day1 - day2) / (1000 * 60 * 60 * 24); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return day; } /** * * 2017年7月18日下午11:03:10 * @param date1 时间参数 1: * @param date2 时间参数 2: * @return 相差天数 * @parameter * long * 两个时间之间相差距离多少天 */ public static long[] addDayTime(String date1,String date2){ if(date2.indexOf("/")!=-1){ date2 = date2.replace(" ", "/"); String[] ss = date2.split("/"); date2 = ss[2]+"-"+ss[0]+"-"+ss[1]+" "+ss[3]; } if(date1.indexOf("/")!=-1){ date1 = date1.replace(" ", "/"); String[] ss = date1.split("/"); date1 = ss[2]+"-"+ss[0]+"-"+ss[1]+" "+ss[3]; } SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(date1); two = df.parse(date2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff/1000-day*24*60*60-hour*60*60-min*60); } catch (ParseException e) { e.printStackTrace(); } long[] times = {day, hour, min, sec}; return times; } /** * 两个时间相差距离多少天多少小时多少分多少秒 * @param str1 时间参数 1 格式:1990-01-01 12:00:00 * @param str2 时间参数 2 格式:2009-01-01 12:00:00 * @return String 返回值为:xx天xx小时xx分xx秒 */ public static String getDistanceTime(String str1, String str2) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff/1000-day*24*60*60-hour*60*60-min*60); } catch (ParseException e) { e.printStackTrace(); } return day + "天" + hour + "小时" + min + "分" + sec + "秒"; } /** * 格式化时间 把 月/日/年 时:分:秒.000 格式化为yyyy-MM-dd hh:MM:ss.sss * * 2017年7月19日上午1:19:20 * @param time * @return * @parameter * String * */ public static String getFomatTime(String time){ if(time.indexOf("/")!=-1){ time = time.replace(" ", "/"); String[] ss = time.split("/"); time = ss[2]+"-"+ss[0]+"-"+ss[1]+" "+ss[3]; } return time; } public static void main(String[] args) { /* String s = getCurrentTimeNormal(); long a = addDay(s,"2017-07-13 11:56:37.523"); System.out.println(a);*/ String ss = "13/14/2017 11:23:34.194000"; String sss = getFomatTime(ss); int i = sss.indexOf(" "); String snew= sss.substring(i+1); String snews= sss.substring(0,i); System.out.println("---"+snews+"---"); System.out.println("---"+snew+"---"); } }
DateUtil工具类2
最新推荐文章于 2023-03-02 10:07:41 发布