日期格式化、时间差转换
生活随笔
收集整理的這篇文章主要介紹了
日期格式化、时间差转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在項目中,難免會遇到日期轉換或者計算時間差的,于是就整合成了一個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);}}在項目開發中還是很實用的,在此處記下來。`
總結
以上是生活随笔為你收集整理的日期格式化、时间差转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PDB文件的格式
- 下一篇: helper java_请教问题,hel