日期格式化、时间差转换

来源:互联网 发布:ff14女精灵捏脸数据 编辑:程序博客网 时间:2024/05/17 01:04

在项目中,难免会遇到日期转换或者计算时间差的,于是就整合成了一个util,方便以后使用。以下是代码

package com.magingunion.framework.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateUtil {        /**          * 将时间字符串转换为Date类型          * @param dateStr          * @return Date          */          public static Date toDate(String dateStr) {              Date date = null;              SimpleDateFormat formater = new SimpleDateFormat();              formater.applyPattern("yyyy-MM-dd ");              try {                  date = formater.parse(dateStr);              } catch (ParseException e) {                  e.printStackTrace();              }              return date;          }          /**          * 按照提供的格式将字符串转换成Date类型          * @param dateStr          * @param formaterString          * @return          */          public static Date toDate(String dateStr, String formaterString) {              Date date = null;              SimpleDateFormat formater = new SimpleDateFormat();              formater.applyPattern(formaterString);              try {                  date = formater.parse(dateStr);              } catch (ParseException e) {                  e.printStackTrace();              }              return date;          }          /**          * 将Date类型时间转换为字符串          * @param date          * @return          */          public static String toString(Date date) {              String time;              SimpleDateFormat formater = new SimpleDateFormat();              formater.applyPattern("yyyy-MM-dd");              time = formater.format(date);              return time;          }          /**          * 按照参数提供的格式将Date类型时间转换为字符串          * @param date          * @param formaterString          * @return          */          public static String toString(Date date, String formaterString) {              String time;              SimpleDateFormat formater = new SimpleDateFormat();              formater.applyPattern(formaterString);              time = formater.format(date);              return time;          }          /**         *          *功能:计算时间差          *@param startTime         *@param endTime         *@return         */        public static String dateDiff(String startTime, String endTime) {             // 按照传入的格式生成一个simpledateformate对象                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数                long nh = 1000 * 60 * 60;// 一小时的毫秒数                long nm = 1000 * 60;// 一分钟的毫秒数                long ns = 1000;// 一秒钟的毫秒数                long diff;                long day = 0;                long hour = 0;                long min = 0;                long sec = 0;                // 获得两个时间的毫秒时间差异                try {                    diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();                    day = diff / nd;// 计算差多少天                    hour = diff % nd / nh + day * 24;// 计算差多少小时                    min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟                    sec = diff % nd % nh % nm / ns;// 计算差多少秒                    // 输出结果                    System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时"                           + (min - day * 24 * 60) + "分钟" + sec + "秒。");                    System.out.println("hour=" + hour + ",min=" + min);            } catch (ParseException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                if(min<=60){                return  min - day * 24 * 60+"分钟";            }else if(min>60 && hour<24){                return  (hour - day * 24) + "小时" + (min - day * 24 * 60) + "分钟";            }else {                return  day + "天" + (hour - day * 24) + "小时" + (min - day * 24 * 60) + "分钟";            }    }        /**         *          *功能: 小时差         *@param startTime         *@param endTime         *@return         */        public static String hourDiff(String startTime, String endTime) {             // 按照传入的格式生成一个simpledateformate对象                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数                long nh = 1000 * 60 * 60;// 一小时的毫秒数                long nm = 1000 * 60;// 一分钟的毫秒数                long ns = 1000;// 一秒钟的毫秒数                long diff;                long day = 0;                long hour = 0;                long min = 0;                long sec = 0;                // 获得两个时间的毫秒时间差异                try {                    diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();                    day = diff / nd;// 计算差多少天                    hour = diff % nd / nh + day * 24;// 计算差多少小时                    min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟                    sec = diff % nd % nh % nm / ns;// 计算差多少秒                    // 输出结果                    System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时"                           + (min - day * 24 * 60) + "分钟" + sec + "秒。");                    System.out.println("hour=" + hour + ",min=" + min);            } catch (ParseException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                return String.valueOf(hour);    }}

在项目开发中还是很实用的,在此处记下来。`

原创粉丝点击