首页 > 开发 > Java > 正文

java时间戳与日期相互转换工具详解

2024-07-13 10:14:22
字体:
来源:转载
供稿:网友

本文为大家分享了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")));   } } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表