java時(shí)間戳與日期相互轉(zhuǎn)換工具詳解
更新時(shí)間:2017年12月08日 11:58:25 作者:哈爾濱食尸鬼
這篇文章主要為大家詳細(xì)介紹了java各種時(shí)間戳與日期之間相互轉(zhuǎn)換的工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文為大家分享了java日期與時(shí)間戳相互轉(zhuǎn)換大全,供大家參考,具體內(nèi)容如下
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 { /** * 時(shí)間戳轉(zhuǎn)日期 * @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點(diǎn)半的時(shí)間戳 * * @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); } /** * 獲取當(dāng)前時(shí)間往上的整點(diǎn)時(shí)間 * * @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); } /** * 時(shí)間戳轉(zhuǎn)日期 * @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; } /** * 時(shí)間戳轉(zhuǎn)日期 * @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; } /** * 日期轉(zhuǎn)時(shí)間戳 * @param date * @return */ public static Integer transForMilliSecond(Date date){ if(date==null) return null; return (int)(date.getTime()/1000); } /** * 獲取當(dāng)前時(shí)間戳 * @return */ public static Integer currentTimeStamp(){ return (int)(System.currentTimeMillis()/1000); } /** * 日期字符串轉(zhuǎn)時(shí)間戳 * @param dateStr * @return */ public static Integer transForMilliSecond(String dateStr){ Date date = DateFormatUtil.formatDate(dateStr); return date == null ? null : DateFormatUtil.transForMilliSecond(date); } /** * 日期字符串轉(zhuǎn)時(shí)間戳 * @param dateStr * @return */ public static Integer transForMilliSecond(String dateStr,String format){ Date date = DateFormatUtil.formatDate(dateStr,format); return date == null ? null : DateFormatUtil.transForMilliSecond(date); } /** * 日期字符串轉(zhuǎn)時(shí)間戳 * @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); } /** * 字符串轉(zhuǎn)日期,格式為:"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; } /** * 字符串轉(zhuǎn)日期,格式為:"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; } /** * 日期轉(zhuǎn)字符串 * @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; } /** * 日期轉(zhuǎn)字符串 * @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; } /** * 時(shí)間戳格式化輸出(httl模版用) * * @param ms 時(shí)間戳 * @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類型數(shù)的整數(shù)或小數(shù)部分(httl模版用) * * @param b 值 * @param mode 模式 0取整 1去小數(shù)部分 * @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]; } } /** * 計(jì)算兩個(gè)日期之間差的天數(shù)(httl模版用) * * @param ts1 時(shí)間戳1 * @param ts2 時(shí)間戳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); } /** * 給手機(jī)加密中間四位加星號(hào) * * @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; } /** * 給郵箱加密加星號(hào) * * @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類型數(shù)據(jù)相加 * * @param BigDecimal source * @param BigDecimal target * @return */ public BigDecimal sumBigDicimal(BigDecimal source, BigDecimal target) { source = source.add(target); return source; } /** * BigDecimal類型數(shù)據(jù)相加 * * @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類型數(shù)據(jù)相減 * * @param BigDecimal source * @param BigDecimal target * @return */ public BigDecimal subBigDicimal(BigDecimal source, BigDecimal target) { source = source.subtract(target); return source; } /** * 獲取傳入時(shí)間和當(dāng)前時(shí)間的時(shí)間差 * @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 當(dāng)周 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"; } /** * 當(dāng)前時(shí)間加一年 */ 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"; } /** * 和當(dāng)前時(shí)間比對(duì) * @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格式時(shí)間轉(zhuǎn)換為1970-01-01日的時(shí)間戳(也就是只有時(shí)間沒有日期的情況要求使用時(shí)間戳表示時(shí)間) * @author DingJiaCheng * */ public static int transFromTime(String time){ return transForMilliSecond("1970-01-01 "+time,"yyyy-mm-dd HH:mm:ss"); } /** * 時(shí)間戳轉(zhuǎn)換為HH:mm:ss格式時(shí)間(日期去除) * @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"))); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis啟動(dòng)時(shí)控制臺(tái)無限輸出日志的原因及解決辦法
這篇文章主要介紹了MyBatis啟動(dòng)時(shí)控制臺(tái)無限輸出日志的原因及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-07-07Spring Boot 中該如何防御計(jì)時(shí)攻擊
這篇文章主要介紹了Spring Boot 中該如何防御計(jì)時(shí)攻擊,幫助大家更好的使用spring boot框架,感興趣的朋友可以了解下2020-09-09mybatisplus中的xml對(duì)象參數(shù)傳遞問題
這篇文章主要介紹了mybatisplus中的xml對(duì)象參數(shù)傳遞問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11使用mybatis插件PageHelper實(shí)現(xiàn)分頁(yè)效果
這篇文章主要為大家詳細(xì)介紹了使用mybatis插件PageHelper實(shí)現(xiàn)分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之食品溯源系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+Springboot+Maven+mybatis+Vue+mysql+wd開發(fā)的食品溯源系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有食品溯源該有的所有功能,感興趣的朋友快來看看吧2022-01-01