java針對于時間轉(zhuǎn)換的DateUtils工具類
更新時間:2017年12月08日 08:53:33 作者:lettle_redhat
這篇文章主要為大家詳細(xì)介紹了java針對于時間轉(zhuǎn)換的DateUtils工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了時間轉(zhuǎn)換的DateUtils工具類,供大家參考,具體內(nèi)容如下
import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; /** * 時間日期工具類 * * @author wul * 2015-12-31 */ public class DateUtil { public static final String DATE_NORMAL_FORMAT = "yyyy-MM-dd"; public static final String DATETIME_NORMAL_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_COMPACT_FORMAT = "yyyyMMdd"; public static final String DATETIME_COMPACT_FORMAT = "yyyyMMddHHmmss"; public static final String YM_NORMAL_FORMAT = "yyyy-MM"; public static final String YM_COMPACT_FORMAT = "yyyyMM"; /** * String轉(zhuǎn)Timestamp * @param dateStr * @return * @author wul * 2016-1-17 */ public static Timestamp stringToTimestamp(String dateStr) { try { if(dateStr.length() <= 10) { dateStr += " 00:00:00"; } return Timestamp.valueOf(dateStr); } catch (Exception e) { e.printStackTrace(); return null; } } /** * String轉(zhuǎn)Date * @param dateStr * @param format * @return * @author wul * 2016-1-17 */ public static Date stringToDate(String dateStr, String format) { if(dateStr == null || "".equals(dateStr)){ return null; } Date date = null; //注意format的格式要與日期String的格式相匹配 SimpleDateFormat sdf = new SimpleDateFormat(format); try { date = sdf.parse(dateStr); } catch (Exception e) { e.printStackTrace(); } return date; } /** * Date轉(zhuǎn)String * @param date * @param format * @return * @author wul * 2016-1-17 */ public static String dateToString(Date date, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); String currentDate = sdf.format(date); return currentDate; } /** * Date轉(zhuǎn)Timestamp * @param date * @return * @author wul * 2016-1-17 */ public static Timestamp dateToTimestamp(Date date) { Timestamp ts = new Timestamp(date.getTime()); return ts; } /** * Timestamp轉(zhuǎn)String * @param ts * @return * @author wul * 2016-1-17 */ public static String timestampToString(Timestamp ts) { String tsStr = null; SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT); try { tsStr = sdf.format(ts); } catch (Exception e) { e.printStackTrace(); } return tsStr; } /** * Timestamp轉(zhuǎn)Date * @param ts * @return * @author wul * 2016-1-17 */ public static Date timestampToDate(Timestamp ts) { return ts; } /** * 獲得當(dāng)前時間并格式化:yyyy-MM-dd HH:mm:ss * @return */ public static String getCurrentTimeNormal() { SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 獲得當(dāng)前時間并格式化:yyyyMMddHHmmss * @return */ public static String getCurrentTimeCompact() { SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_COMPACT_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 獲得當(dāng)前時間并格式化:yyyy-MM-dd * @return */ public static String getCurrentDateNormal() { SimpleDateFormat sdf = new SimpleDateFormat(DATE_NORMAL_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 獲得當(dāng)前時間并格式化:yyyyMMdd * @return */ public static String getCurrentDateCompact() { SimpleDateFormat sdf = new SimpleDateFormat(DATE_COMPACT_FORMAT); String currentDate = sdf.format(new Date()); return currentDate; } /** * 將20101202時間格式化為2010-12-02 * * @param DateString 時間格式:yyyyMMdd * @return */ public static String getDateCompactToNormal(String DateString){ StringBuilder sb = new StringBuilder(); sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8)); return sb.toString(); } /** * 將20101202101423時間格式化為2010-12-02 10:14:23 * * @param DateString 時間格式:yyyyMMddHHmmss * @return */ public static String getDateTimeCompactToNormal(String DateString){ StringBuilder sb = new StringBuilder(); sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8)) .append(" ").append(DateString.substring(8, 10)).append(":").append(DateString.substring(10, 12)).append(":").append(DateString.substring(12)); return sb.toString(); } /** * 把界面輸入的時間轉(zhuǎn)為間湊的時間字符串 * 將2010-12-02 10:14:23時間格式化為20101202101423 * @param dateNormalStr String * @return String */ public static String getCompactString(String dateNormalStr) { StringBuffer ret = new StringBuffer(); try { ret.append(dateNormalStr.substring(0, 4)); ret.append(dateNormalStr.substring(5, 7)); ret.append(dateNormalStr.substring(8, 10)); ret.append(dateNormalStr.substring(11, 13)); ret.append(dateNormalStr.substring(14, 16)); ret.append(dateNormalStr.substring(17, 19)); } catch (Exception ex) { // 如果字串不夠長度,則返回前面的部分 } return ret.toString(); } /** * 將20101202(101423)時間格式 獲得年份 * @param DateString 時間格式:yyyyMMdd(HHmmss) * @return */ public static String getYear(String DateString){ return DateString.substring(0,4); } /** * 將20101202(101423)時間格式 獲得月份 * @param DateString 時間格式:yyyyMMdd(HHmmss) * @return */ public static String getMonth(String DateString){ return DateString.substring(4,6); } /** * 將20101202時間格式 獲得日期 * @param DateString 時間格式:yyyyMMdd * @return */ public static String getDayNoTime(String DateString){ return DateString.substring(6); } /** * 獲取當(dāng)前日期之前的日期,按天數(shù)向前推 * @param numVal * @param dateFormat * @return * @author wul * 2016-1-17 */ public static String getBeforeDatePlusDay(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * 24 * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis - dVal); return currentDate; } /** * 獲取當(dāng)前日期之前的日期,按天數(shù)向前推 * @param numVal * @param dateFormat * @return * @author wul * 2016-1-17 */ public static String getAfterDatePlusDay(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * 24 * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis + dVal); return currentDate; } /** * 獲取當(dāng)前日期之前的日期,按小時向前推 * @param numVal * @param dateFormat * @return * @author wul * 2016-1-17 */ public static String getBeforeDatePlusHour(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis - dVal); return currentDate; } /** * 獲取當(dāng)前日期之前的日期,按小時向前推 * @param numVal * @param dateFormat * @return * @author wul * 2016-1-17 */ public static String getAfterDatePlusHour(int numVal, String dateFormat) { Calendar calendar = Calendar.getInstance(); long currentTimeMillis = calendar.getTimeInMillis(); long hourInMillis = 60 * 60 * 1000; long dVal = numVal * hourInMillis; SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); String currentDate = sdf.format(currentTimeMillis + dVal); return currentDate; } /** * 兩個日期相差天數(shù) * @param beginDate * @param endDate * @return * @author wul * 2016-1-18 */ public static int daysBetween(Date beginDate, Date endDate) { Calendar cal = Calendar.getInstance(); cal.setTime(beginDate); long time1 = cal.getTimeInMillis(); cal.setTime(endDate); long time2 = cal.getTimeInMillis(); long between_days = (time2 - time1) / (1000 * 3600 * 24); return Integer.parseInt(String.valueOf(between_days)); } /** * 獲取某月天數(shù) * @param year * @param month * @return * @author wul * 2016-1-18 */ public static int getMonthdays(int year, int month) { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month - 1); return cal.getActualMaximum(Calendar.DATE); } /** * 給時間加減年份 * @param date * @param plusTime * @return * @author wul * 2016-1-18 */ public static Date getDatePlusYear(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, plusTime); Date d = cal.getTime(); return d; } /** * 給時間加減月份 * @param date * @param plusTime * @return * @author wul * 2016-1-18 */ public static Date getDatePlusMonth(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, plusTime); Date d = cal.getTime(); return d; } /** * 給時間加減天數(shù) * @param date * @param plusTime * @return * @author wul * 2016-1-18 */ public static Date getDatePlusDay(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, plusTime); Date d = cal.getTime(); return d; } /** * 給時間加減小時 * @param date * @param plusTime * @return * @author wul * 2016-1-18 */ public static Date getDatePlusHour(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.HOUR, plusTime); Date d = cal.getTime(); return d; } /** * 給時間加減分鐘 * @param date * @param plusTime * @return * @author wul * 2016-1-18 */ public static Date getDatePlusMinute(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MINUTE, plusTime); Date d = cal.getTime(); return d; } /** * 給時間加減秒 * @param date * @param plusTime * @return * @author wul * 2016-1-18 */ public static Date getDatePlusSecond(Date date, int plusTime) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.SECOND, plusTime); Date d = cal.getTime(); return d; } /** * 返回當(dāng)前年 * @return * @author wul * 2016-1-18 */ public static int getCurrentYear() { Calendar calendar = Calendar.getInstance(); return calendar.get(1); } /** * 返回當(dāng)前月 * @return * @author wul * 2016-1-18 */ public static int getCurrentMonth() { Calendar calendar = Calendar.getInstance(); return calendar.get(2) + 1; } /** * 返回當(dāng)前天 * @return * @author wul * 2016-1-18 */ public static int getCurrentDay() { Calendar calendar = Calendar.getInstance(); return calendar.get(5); } /** * 返回當(dāng)前小時 * @return * @author wul * 2016-1-18 */ public static int getCurrentHour() { Calendar calendar = Calendar.getInstance(); return calendar.get(11); } /** * 返回當(dāng)前分鐘 * @return * @author wul * 2016-1-18 */ public static int getCurrentMinute() { Calendar calendar = Calendar.getInstance(); return calendar.get(12); } /** * 返回當(dāng)前秒 * @return * @author wul * 2016-1-18 */ public static int getCurrentSecond() { Calendar calendar = Calendar.getInstance(); return calendar.get(13); } /** * 返回當(dāng)前年 * @return * @author wul * 2016-1-18 */ public static int getYear(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(1); } /** * 返回當(dāng)前月 * @return * @author wul * 2016-1-18 */ public static int getMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(2) + 1; } /** * 返回當(dāng)前天 * @return * @author wul * 2016-1-18 */ public static int getDay(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(5); } /** * 返回當(dāng)前小時 * @return * @author wul * 2016-1-18 */ public static int getHour(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(11); } /** * 返回當(dāng)前分鐘 * @return * @author wul * 2016-1-18 */ public static int getMinute(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(12); } /** * 返回當(dāng)前秒 * @return * @author wul * 2016-1-18 */ public static int getSecond(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(13); } public static void main(String[] args) { System.out.println(DateUtil.dateToString(new java.sql.Date(System.currentTimeMillis()), DateUtil.DATE_NORMAL_FORMAT)); Map<String,Object> map = new HashMap<String,Object>(); map.put("date", new Date()); String json = JSONObject.fromObject(map).toString(); System.out.println(json); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實現(xiàn)Md5對數(shù)據(jù)庫數(shù)據(jù)加密的示例
本文主要介紹了SpringBoot實現(xiàn)Md5對數(shù)據(jù)庫數(shù)據(jù)加密的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04SpringBoot+Idea熱部署實現(xiàn)流程解析
這篇文章主要介紹了SpringBoot+Idea熱部署實現(xiàn)流程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11Java JDK動態(tài)代理(AOP)用法及實現(xiàn)原理詳解
在本篇文章了小編給大家整理的是一篇關(guān)于Java JDK動態(tài)代理(AOP)用法及實現(xiàn)原理詳解內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2020-10-10深入淺出講解Spring框架中依賴注入與控制反轉(zhuǎn)及應(yīng)用
依賴注入(Dependency?Injection)和控制反轉(zhuǎn)(Inversion?of?Control)是同一個概念。具體含義是:當(dāng)某個角色(可能是一個Java實例,調(diào)用者)需要另一個角色(另一個Java實例,被調(diào)用者)的協(xié)助時,在?傳統(tǒng)的程序設(shè)計過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例2022-03-03