日期格式化、时间差转换
生活随笔
收集整理的這篇文章主要介紹了
日期格式化、时间差转换
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在項(xiàng)目中,難免會(huì)遇到日期轉(zhuǎn)換或者計(jì)算時(shí)間差的,于是就整合成了一個(gè)util,方便以后使用。以下是代碼
package com.magingunion.framework.util;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class DateUtil {/** * 將時(shí)間字符串轉(zhuǎn)換為Date類(lèi)型 * @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; } /** * 按照提供的格式將字符串轉(zhuǎn)換成Date類(lèi)型 * @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類(lèi)型時(shí)間轉(zhuǎn)換為字符串 * @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; } /** * 按照參數(shù)提供的格式將Date類(lèi)型時(shí)間轉(zhuǎn)換為字符串 * @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; } /*** *功能:計(jì)算時(shí)間差 *@param startTime*@param endTime*@return*/public static String dateDiff(String startTime, String endTime) { // 按照傳入的格式生成一個(gè)simpledateformate對(duì)象 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long nd = 1000 * 24 * 60 * 60;// 一天的毫秒數(shù) long nh = 1000 * 60 * 60;// 一小時(shí)的毫秒數(shù) long nm = 1000 * 60;// 一分鐘的毫秒數(shù) long ns = 1000;// 一秒鐘的毫秒數(shù) long diff; long day = 0; long hour = 0; long min = 0; long sec = 0; // 獲得兩個(gè)時(shí)間的毫秒時(shí)間差異 try { diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); day = diff / nd;// 計(jì)算差多少天 hour = diff % nd / nh + day * 24;// 計(jì)算差多少小時(shí) min = diff % nd % nh / nm + day * 24 * 60;// 計(jì)算差多少分鐘 sec = diff % nd % nh % nm / ns;// 計(jì)算差多少秒 // 輸出結(jié)果 System.out.println("時(shí)間相差:" + day + "天" + (hour - day * 24) + "小時(shí)" + (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) + "小時(shí)" + (min - day * 24 * 60) + "分鐘";}else {return day + "天" + (hour - day * 24) + "小時(shí)" + (min - day * 24 * 60) + "分鐘";}}/*** *功能: 小時(shí)差*@param startTime*@param endTime*@return*/public static String hourDiff(String startTime, String endTime) { // 按照傳入的格式生成一個(gè)simpledateformate對(duì)象 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long nd = 1000 * 24 * 60 * 60;// 一天的毫秒數(shù) long nh = 1000 * 60 * 60;// 一小時(shí)的毫秒數(shù) long nm = 1000 * 60;// 一分鐘的毫秒數(shù) long ns = 1000;// 一秒鐘的毫秒數(shù) long diff; long day = 0; long hour = 0; long min = 0; long sec = 0; // 獲得兩個(gè)時(shí)間的毫秒時(shí)間差異 try { diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); day = diff / nd;// 計(jì)算差多少天 hour = diff % nd / nh + day * 24;// 計(jì)算差多少小時(shí) min = diff % nd % nh / nm + day * 24 * 60;// 計(jì)算差多少分鐘 sec = diff % nd % nh % nm / ns;// 計(jì)算差多少秒 // 輸出結(jié)果 System.out.println("時(shí)間相差:" + day + "天" + (hour - day * 24) + "小時(shí)" + (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);}}在項(xiàng)目開(kāi)發(fā)中還是很實(shí)用的,在此處記下來(lái)。`
總結(jié)
以上是生活随笔為你收集整理的日期格式化、时间差转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PDB文件的格式
- 下一篇: helper java_请教问题,hel