java日期格式转换大全
public class DateFormatUtils { private static Log logger = LogFactory.getLog(DateFormatUtils.class); public static String formatDate(String formater,Date date){ SimpleDateFormat formate = new SimpleDateFormat(formater); formate.format(date); return formate.format(date); } /** * * @Title:formatDateToCommon * @Description: 通用时间转换类型 * @param date * @return */ public static String formatDateToCommon(Date date){ SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return formate.format(date); } /** * * @Title:getSystemDate * @Description: 获取系统当前时间 * @param date * @return * @throws Exception */ public static Date getSystemDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { return sdf.parse(sdf.format(new Date())); } catch (ParseException e) { logger.error("", e); } return null ; } /** * * @Title:SystemDateFormatToCommon * @Description: 获取系统当前时间 * @return */ public static String getSystemDateFormatToCommon(){ SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return formate.format(new Date()); } public static String getSystemDateFormatToYYYYMMDD(){ SimpleDateFormat formate = new SimpleDateFormat("yyyyMMdd"); return formate.format(new Date()); } public static String getSystemDateFormatToYYYYMMDDHHmmss(){ SimpleDateFormat formate = new SimpleDateFormat("yyyyMMddHHmmss"); return formate.format(new Date()); } /** * * @Title:getFormatDateCommon * @Description: 格式化时间 * @param date * @return * @throws Exception */ public static Date getFormatDateCommon(Date date) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.parse(sdf.format(date)); } catch (ParseException e) { logger.error("", e); } return null; } /** * * @Title:StringToDate * @Description: 字符串转换成日期 * @param dateStr * @param formatStr * @return * @throws ParseException */ public static Date StringToDate(String dateStr) throws ParseException { DateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date=null; date = sdf.parse(dateStr); return date; } public static Date StringToDate(String dateStr, String pattern){ try{ DateFormat sdf=new SimpleDateFormat(pattern); Date date = sdf.parse(dateStr); return date; }catch(ParseException ex){ return null; } } /** * * @Title:fromDateStringToLong * @Description: 获取字符串时间格式的毫秒数 * @param inVal * @return */ public static long fromDateStringToLong(String inVal) { return fromDateStringToLong(inVal, "yyyy-MM-dd HH:mm:ss"); } public static long fromDateStringToLong(String inVal,String format) { Date date = null; // 定义时间类型 SimpleDateFormat inputFormat = new SimpleDateFormat(format); try { date = inputFormat.parse(inVal); // 将字符型转换成日期型 } catch (Exception e) { logger.error("", e); } return date.getTime(); // 返回毫秒数 } /** * * @Title:getMillForDateTimeDouble * @Description: 获取两个时间之间的毫秒数 * @param inVal * @return */ public static long getMillForDateTimeDouble(Date startTime, Date endTime) { long lTime = startTime.getTime(); long eTime = endTime.getTime(); long s = eTime - lTime ; return s; } /** * * @Title:formatDuring * @Description: 将毫秒数转换为时分秒 * @param mss * @return */ public static String formatDuring(long mss) { long days = mss / (1000 * 60 * 60 * 24); long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60); long seconds = (mss % (1000 * 60)) / 1000; return days + " 天 " + hours + " 时 " + minutes + " 分 " + seconds + " 秒 "; } /** * 计算两个日期之间相差的天数 * @param format yyyyMMdd * @param smdate 较小的时间 * @param bdate 较大的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(String format,Date smdate,Date bdate) throws ParseException { SimpleDateFormat sdf=new SimpleDateFormat(format); smdate=sdf.parse(sdf.format(smdate)); bdate=sdf.parse(sdf.format(bdate)); Calendar cal = Calendar.getInstance(); cal.setTime(smdate); long time1 = cal.getTimeInMillis(); cal.setTime(bdate); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } /** * 计算两个日期之间相差的天数 * 字符串的日期格式的计算 * @param format yyyyMMdd * @param smdate 较小的时间 * @param bdate 较大的时间 * @return 相差天数 * @throws ParseException */ public static int daysBetween(String format,String smdate,String bdate) throws ParseException{ SimpleDateFormat sdf=new SimpleDateFormat(format); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(smdate)); long time1 = cal.getTimeInMillis(); cal.setTime(sdf.parse(bdate)); long time2 = cal.getTimeInMillis(); long between_days=(time2-time1)/(1000*3600*24); return Integer.parseInt(String.valueOf(between_days)); } /** * * @Title:getSystemAddMinute * @Description: 获取当前系统时间毫秒数 + n分钟后的时间 * @param currentTimeMillis 当前系统时间毫秒数 * @param minute 分 * @return */ public static String getSystemByCurrentTimeMillisAndMinute(long currentTimeMillis, int minute){ long currentTime = System.currentTimeMillis() + minute * 60 * 1000; Date date = new Date(currentTime); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(date); } /** * * @Title:getDateStrByTimeMillis * @Description: 以字符串形式根据毫秒数获取时间 * @param currentTimeMillis * @return */ public static String getDateStrByTimeMillis(long currentTimeMillis){ Date date = new Date(currentTimeMillis); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(date); } /** * * @Title:getDateStrByTimeMillis * @Description: 以字符串形式根据毫秒数获取时间 * @param currentTimeMillis * @return */ public static Date getDateByTimeMillis(long currentTimeMillis){ Date date = new Date(currentTimeMillis); return date; } /**** * 传入具体日期 ,返回具体日期减一个月。 * * @param date * 日期(2014-04-20) * @return 2014-03-20 * @throws ParseException */ public static String addMonth(String yearMonth) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); Date dt = sdf.parse(yearMonth); Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.MONTH, +1); Date dt1 = rightNow.getTime(); String reStr = sdf.format(dt1); return reStr; } /** * * @param dateStr 传入的日期字符串 * @param formater 对传入日期和传出日期的格式化类型 * @param monthCount 增加月份传入正值,减去月份传入负值 * @return * @throws ParseException */ public static String calMonth(String dateStr, String formater, int monthCount) throws ParseException{ SimpleDateFormat sdf = new SimpleDateFormat(formater); Date dt = sdf.parse(dateStr); Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.MONTH, monthCount); Date dt1 = rightNow.getTime(); String reStr = sdf.format(dt1); return reStr; } }
作者:虾米哥
微信公众号:IT虾米,左侧为二维码
个人技术网站-IT虾米网:http://www.itxm.cn
个人技术网站-编程符号网:http://www.itfh.cn
个人技术网站-IT源码网:http://www.itym.cn
新浪微博:https://weibo.com/u/2814576687
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。