java时间戳与日期相互转换工具详解
本文为大家分享了java日期与时间戳相互转换大全,供大家参考,具体内容如下
package com.crm.util; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author DingJiaCheng * */ public class DateFormatUtil { /** * 时间戳转日期 * @param ms * @return */ public static Date transForDate(Integer ms){ if(ms==null){ ms=0; } long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date temp=null; if(ms!=null){ try { String str=sdf.format(msl); temp=sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } } return temp; } /** * 获取晚上9点半的时间戳 * * @return */ public static int getTimes(int day, int hour, int minute) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, day); cal.set(Calendar.HOUR_OF_DAY, hour); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, minute); cal.set(Calendar.MILLISECOND, 0); return (int) (cal.getTimeInMillis() / 1000); } /** * 获取当前时间往上的整点时间 * * @return */ public static int getIntegralTime() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.HOUR_OF_DAY, 1); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.MILLISECOND, 0); return (int) (cal.getTimeInMillis() / 1000); } public static int getIntegralTimeEnd() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 24); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.MILLISECOND, 0); return (int) (cal.getTimeInMillis() / 1000); } /** * 时间戳转日期 * @param ms * @return */ public static Date transForDate3(Integer ms){ if(ms==null){ ms=0; } long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date temp=null; if(ms!=null){ try { String str=sdf.format(msl); temp=sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } } return temp; } /** * 时间戳转日期 * @param ms * @return */ public static Date transForDate(Long ms){ if(ms==null){ ms=(long)0; } long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date temp=null; if(ms!=null){ try { String str=sdf.format(msl); temp=sdf.parse(str); } catch (ParseException e) { e.printStackTrace(); } } return temp; } public static String transForDate1(Integer ms){ String str = ""; if(ms!=null){ long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if(ms!=null){ try { str=sdf.format(msl); } catch (Exception e) { e.printStackTrace(); } } } return str; } public static String transForDate2(Integer ms){ String str = ""; if(ms!=null){ long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); if(ms!=null){ try { str=sdf.format(msl); } catch (Exception e) { e.printStackTrace(); } } } return str; } public static String transForDate4(Integer ms){ String str = ""; if(ms!=null){ long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd"); if(ms!=null){ try { str=sdf.format(msl); } catch (Exception e) { e.printStackTrace(); } } } return str; } public static String transForDate5(Integer ms){ String str = ""; if(ms!=null){ long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); if(ms!=null){ try { str=sdf.format(msl); } catch (Exception e) { e.printStackTrace(); } } } return str; } public static String transForDateInChinese(Integer ms){ String str = ""; if(ms!=null){ long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); if(ms!=null){ try { str=sdf.format(msl); } catch (Exception e) { e.printStackTrace(); } } } return str; } /** * 日期转时间戳 * @param date * @return */ public static Integer transForMilliSecond(Date date){ if(date==null) return null; return (int)(date.getTime()/1000); } /** * 获取当前时间戳 * @return */ public static Integer currentTimeStamp(){ return (int)(System.currentTimeMillis()/1000); } /** * 日期字符串转时间戳 * @param dateStr * @return */ public static Integer transForMilliSecond(String dateStr){ Date date = DateFormatUtil.formatDate(dateStr); return date == null ? null : DateFormatUtil.transForMilliSecond(date); } /** * 日期字符串转时间戳 * @param dateStr * @return */ public static Integer transForMilliSecond(String dateStr,String format){ Date date = DateFormatUtil.formatDate(dateStr,format); return date == null ? null : DateFormatUtil.transForMilliSecond(date); } /** * 日期字符串转时间戳 * @param dateStr * @param 格式 如"yyyy-mm-dd" * @return */ public static Integer transForMilliSecondByTim(String dateStr,String tim){ SimpleDateFormat sdf=new SimpleDateFormat(tim); Date date =null; try { date = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return date == null ? null : DateFormatUtil.transForMilliSecond(date); } /** * 字符串转日期,格式为:"yyyy-MM-dd HH:mm:ss" * @param dateStr * @return */ public static Date formatDate(String dateStr){ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date result=null; try { result = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return result; } /** * 字符串转日期,格式为:"yyyy-MM-dd HH:mm:ss" * @param dateStr * @return */ public static Date formatDate(String dateStr,String format){ SimpleDateFormat sdf=new SimpleDateFormat(format); Date result=null; try { result = sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return result; } /** * 日期转字符串 * @param date * @return */ public static String formatDate(Date date){ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String result=null; result = sdf.format(date); return result; } /** * 日期转字符串 * @param date * @return */ public static String formatDate(Date date,String format){ SimpleDateFormat sdf=new SimpleDateFormat(format); String result=null; result = sdf.format(date); return result; } /** * 时间戳格式化输出(httl模版用) * * @param ms 时间戳 * @param format 格式化 * @return */ public static String transForDate(Integer ms, String format){ String str = ""; if(ms!=null){ long msl=(long)ms*1000; SimpleDateFormat sdf=new SimpleDateFormat(format); if(!ms.equals(0)){ try { str=sdf.format(msl); } catch (Exception e) { e.printStackTrace(); } } } return str; } /** * 取BigDecimal类型数的整数或小数部分(httl模版用) * * @param b 值 * @param mode 模式 0取整 1去小数部分 * @return */ public static String splitBigDecimal(BigDecimal b, int mode) { DecimalFormat df = new DecimalFormat("0.00"); String s = df.format(b); if(mode==0){ return s.split("\\.")[0]; }else { return "."+s.split("\\.")[1]; } } /** * 计算两个日期之间差的天数(httl模版用) * * @param ts1 时间戳1 * @param ts2 时间戳2 * @return */ public static int caculate2Days(Integer ts1, Integer ts2) { Date firstDate = DateFormatUtil.transForDate(ts1); Date secondDate = DateFormatUtil.transForDate(ts2); Calendar calendar = Calendar.getInstance(); calendar.setTime(firstDate); int dayNum1 = calendar.get(Calendar.DAY_OF_YEAR); calendar.setTime(secondDate); int dayNum2 = calendar.get(Calendar.DAY_OF_YEAR); return Math.abs(dayNum1 - dayNum2); } /** * 给手机加密中间四位加星号 * * @param mobile * @return */ public String mobileSerect(String mobile){ if(!StringUtils.isBlank(mobile)){ int between = mobile.length()/2; mobile = mobile.substring(0, between-2)+"****"+mobile.substring(between+2, mobile.length()); } return mobile; } /** * 给邮箱加密加星号 * * @param email * @return */ public String emailSerect(String email) { if(!StringUtils.isBlank(email)){ int length = email.lastIndexOf("@"); email = email.substring(0, 2)+"****"+email.substring(length-2, email.length()); } return email; } /** * BigDecimal类型数据相加 * * @param BigDecimal source * @param BigDecimal target * @return */ public BigDecimal sumBigDicimal(BigDecimal source, BigDecimal target) { source = source.add(target); return source; } /** * BigDecimal类型数据相加 * * @param BigDecimal source * @param BigDecimal target * @return */ public BigDecimal sumBigDicimalAndDouble(BigDecimal source, Double target) { BigDecimal new_target = new BigDecimal(target); source = source.add(new_target); return source; } /** * BigDecimal类型数据相减 * * @param BigDecimal source * @param BigDecimal target * @return */ public BigDecimal subBigDicimal(BigDecimal source, BigDecimal target) { source = source.subtract(target); return source; } /** * 获取传入时间和当前时间的时间差 * @return */ public static Long getTimediff(int timeStamp){ Date d1 = DateFormatUtil.transForDate(timeStamp); Date today = new Date(); if(d1.getTime()<today.getTime()){ return null; } return (d1.getTime()-today.getTime())/1000; } /** * 获取某周的第一天日期 * @param week 0 当周 1 上一周 -1 下一周 * @return */ public static String weekFirstDay(int week){ Calendar c1 = Calendar.getInstance(); int dow = c1.get(Calendar.DAY_OF_WEEK); c1.add(Calendar.DATE, -dow-7*(week-1)-5 ); String d1 = new SimpleDateFormat("yyyy-MM-dd").format(c1.getTime()); return d1+" 00:00:00"; } /** * 当前时间加一年 */ public static String addYear(int startTime){ Date firstDate = DateFormatUtil.transForDate(startTime); Calendar calendar = Calendar.getInstance(); calendar.setTime(firstDate); calendar.add(Calendar.YEAR,1); String d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); return d1; } /** * 获取某周的最后一天日期 * @param week * @return */ public static String weekLastDay(int week){ Calendar c1 = Calendar.getInstance(); int dow = c1.get(Calendar.DAY_OF_WEEK); c1.add(Calendar.DATE, -dow-7*(week-1)+1); String d1 = new SimpleDateFormat("yyyy-MM-dd").format(c1.getTime()); return d1+" 23:59:59"; } /** * 和当前时间比对 * @return */ public static boolean greaterThanNow(int timeStamp){ Date d1 = DateFormatUtil.transForDate(timeStamp); Date today = new Date(); if(d1.getTime()>=today.getTime()){ return true; } return false; } /** * HH:mm:ss格式时间转换为1970-01-01日的时间戳(也就是只有时间没有日期的情况要求使用时间戳表示时间) * @author DingJiaCheng * */ public static int transFromTime(String time){ return transForMilliSecond("1970-01-01 "+time,"yyyy-mm-dd HH:mm:ss"); } /** * 时间戳转换为HH:mm:ss格式时间(日期去除) * @author DingJiaCheng * */ public static String transToTime(int time){ String s = new String(transForDate1(time)); String ss[] = s.split(" "); return ss[1]; } public static int transToChuo(String dateString){ SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd"); int res = 0; try { Date date=simpleDateFormat .parse(dateString); res = (int) date.getTime(); } catch (ParseException e) { e.printStackTrace(); } return res; } public static void main(String[] args) { //System.out.println(getIntegralTimeEnd()); System.out.println(transForDate2(transForMilliSecond("2015-02-25 00:00:00"))); //System.out.println(transForMilliSecond("2016-01-25","yyyy-mm-dd")); //System.out.println(transForDate1(transForMilliSecond("1970-01-01 00:00:00","yyyy-mm-dd HH:mm:ss"))); //System.out.println(currentTimeStamp()); //System.out.println(transForDate(currentTimeStamp())); //System.out.println(new Date()); //System.out.println(DateUtils.getDate()); System.out.println(transFromTime("00:00:01")); System.out.println(transToTime(transFromTime("15:01:13"))); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)