java重复造轮子系列篇-----时间date
生活随笔
收集整理的這篇文章主要介紹了
java重复造轮子系列篇-----时间date
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
時間操作工具類
package org.jeecgframework.core.util;import java.beans.PropertyEditorSupport; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar;import org.springframework.util.StringUtils;/*** * 類描述:時間操作定義類** @date: 日期:2012-12-8 時間:下午12:15:03* @version 1.0*/ public class DateUtils extends PropertyEditorSupport {// 各種時間格式public static final SimpleDateFormat date_sdf = new SimpleDateFormat("yyyy-MM-dd");// 各種時間格式public static final SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyyMMdd");// 各種時間格式public static final SimpleDateFormat date_sdf_wz = new SimpleDateFormat("yyyy年MM月dd日");public static final SimpleDateFormat time_sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");public static final SimpleDateFormat yyyymmddhhmmss = new SimpleDateFormat("yyyyMMddHHmmss");public static final SimpleDateFormat short_time_sdf = new SimpleDateFormat("HH:mm");public static final SimpleDateFormat datetimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 以毫秒表示的時間private static final long DAY_IN_MILLIS = 24 * 3600 * 1000;private static final long HOUR_IN_MILLIS = 3600 * 1000;private static final long MINUTE_IN_MILLIS = 60 * 1000;private static final long SECOND_IN_MILLIS = 1000;// 指定模式的時間格式private static SimpleDateFormat getSDFormat(String pattern) {return new SimpleDateFormat(pattern);}/*** 當前日歷,這里用中國時間表示* * @return 以當?shù)貢r區(qū)表示的系統(tǒng)當前日歷*/public static Calendar getCalendar() {return Calendar.getInstance();}/*** 指定毫秒數(shù)表示的日歷* * @param millis* 毫秒數(shù)* @return 指定毫秒數(shù)表示的日歷*/public static Calendar getCalendar(long millis) {Calendar cal = Calendar.getInstance();// --------------------cal.setTimeInMillis(millis);cal.setTime(new Date(millis));return cal;}// // getDate// 各種方式獲取的Date// /*** 當前日期* * @return 系統(tǒng)當前時間*/public static Date getDate() {return new Date();}/*** 指定毫秒數(shù)表示的日期* * @param millis* 毫秒數(shù)* @return 指定毫秒數(shù)表示的日期*/public static Date getDate(long millis) {return new Date(millis);}/*** 時間戳轉換為字符串* * @param time* @return*/public static String timestamptoStr(Timestamp time) {Date date = null;if (null != time) {date = new Date(time.getTime());}return date2Str(date_sdf);}/*** 字符串轉換時間戳* * @param str* @return*/public static Timestamp str2Timestamp(String str) {Date date = str2Date(str, date_sdf);return new Timestamp(date.getTime());}/*** 字符串轉換成日期* @param str* @param sdf* @return*/public static Date str2Date(String str, SimpleDateFormat sdf) {if (null == str || "".equals(str)) {return null;}Date date = null;try {date = sdf.parse(str);return date;} catch (ParseException e) {e.printStackTrace();}return null;}/*** 日期轉換為字符串* * @param date* 日期* @param format* 日期格式* @return 字符串*/public static String date2Str(SimpleDateFormat date_sdf) {Date date=getDate();if (null == date) {return null;}return date_sdf.format(date);}/*** 格式化時間* @param date* @param format* @return*/public static String dateformat(String date,String format){SimpleDateFormat sformat = new SimpleDateFormat(format);Date _date=null;try {_date=sformat.parse(date);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}return sformat.format(_date);}/*** 日期轉換為字符串* * @param date* 日期* @param format* 日期格式* @return 字符串*/public static String date2Str(Date date, SimpleDateFormat date_sdf) {if (null == date) {return null;}return date_sdf.format(date);}/*** 日期轉換為字符串* * @param date* 日期* @param format* 日期格式* @return 字符串*/public static String getDate(String format) {Date date=new Date();if (null == date) {return null;}SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.format(date);}/*** 指定毫秒數(shù)的時間戳* * @param millis* 毫秒數(shù)* @return 指定毫秒數(shù)的時間戳*/public static Timestamp getTimestamp(long millis) {return new Timestamp(millis);}/*** 以字符形式表示的時間戳* * @param time* 毫秒數(shù)* @return 以字符形式表示的時間戳*/public static Timestamp getTimestamp(String time) {return new Timestamp(Long.parseLong(time));}/*** 系統(tǒng)當前的時間戳* * @return 系統(tǒng)當前的時間戳*/public static Timestamp getTimestamp() {return new Timestamp(new Date().getTime());}/*** 指定日期的時間戳* * @param date* 指定日期* @return 指定日期的時間戳*/public static Timestamp getTimestamp(Date date) {return new Timestamp(date.getTime());}/*** 指定日歷的時間戳* * @param cal* 指定日歷* @return 指定日歷的時間戳*/public static Timestamp getCalendarTimestamp(Calendar cal) {// ---------------------return new Timestamp(cal.getTimeInMillis());return new Timestamp(cal.getTime().getTime());}public static Timestamp gettimestamp() {Date dt = new Date();DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String nowTime = df.format(dt);java.sql.Timestamp buydate = java.sql.Timestamp.valueOf(nowTime);return buydate;}// // getMillis// 各種方式獲取的Millis// /*** 系統(tǒng)時間的毫秒數(shù)* * @return 系統(tǒng)時間的毫秒數(shù)*/public static long getMillis() {return new Date().getTime();}/*** 指定日歷的毫秒數(shù)* * @param cal* 指定日歷* @return 指定日歷的毫秒數(shù)*/public static long getMillis(Calendar cal) {// --------------------return cal.getTimeInMillis();return cal.getTime().getTime();}/*** 指定日期的毫秒數(shù)* * @param date* 指定日期* @return 指定日期的毫秒數(shù)*/public static long getMillis(Date date) {return date.getTime();}/*** 指定時間戳的毫秒數(shù)* * @param ts* 指定時間戳* @return 指定時間戳的毫秒數(shù)*/public static long getMillis(Timestamp ts) {return ts.getTime();}// // formatDate// 將日期按照一定的格式轉化為字符串// /*** 默認方式表示的系統(tǒng)當前日期,具體格式:年-月-日* * @return 默認日期按“年-月-日“格式顯示*/public static String formatDate() {return date_sdf.format(getCalendar().getTime());}/*** 獲取時間字符串*/public static String getDataString(SimpleDateFormat formatstr) {return formatstr.format(getCalendar().getTime());}/*** 指定日期的默認顯示,具體格式:年-月-日* * @param cal* 指定的日期* @return 指定日期按“年-月-日“格式顯示*/public static String formatDate(Calendar cal) {return date_sdf.format(cal.getTime());}/*** 指定日期的默認顯示,具體格式:年-月-日* * @param date* 指定的日期* @return 指定日期按“年-月-日“格式顯示*/public static String formatDate(Date date) {return date_sdf.format(date);}/*** 指定毫秒數(shù)表示日期的默認顯示,具體格式:年-月-日* * @param millis* 指定的毫秒數(shù)* @return 指定毫秒數(shù)表示日期按“年-月-日“格式顯示*/public static String formatDate(long millis) {return date_sdf.format(new Date(millis));}/*** 默認日期按指定格式顯示* * @param pattern* 指定的格式* @return 默認日期按指定格式顯示*/public static String formatDate(String pattern) {return getSDFormat(pattern).format(getCalendar().getTime());}/*** 指定日期按指定格式顯示* * @param cal* 指定的日期* @param pattern* 指定的格式* @return 指定日期按指定格式顯示*/public static String formatDate(Calendar cal, String pattern) {return getSDFormat(pattern).format(cal.getTime());}/*** 指定日期按指定格式顯示* * @param date* 指定的日期* @param pattern* 指定的格式* @return 指定日期按指定格式顯示*/public static String formatDate(Date date, String pattern) {return getSDFormat(pattern).format(date);}// // formatTime// 將日期按照一定的格式轉化為字符串// /*** 默認方式表示的系統(tǒng)當前日期,具體格式:年-月-日 時:分* * @return 默認日期按“年-月-日 時:分“格式顯示*/public static String formatTime() {return time_sdf.format(getCalendar().getTime());}/*** 指定毫秒數(shù)表示日期的默認顯示,具體格式:年-月-日 時:分* * @param millis* 指定的毫秒數(shù)* @return 指定毫秒數(shù)表示日期按“年-月-日 時:分“格式顯示*/public static String formatTime(long millis) {return time_sdf.format(new Date(millis));}/*** 指定日期的默認顯示,具體格式:年-月-日 時:分* * @param cal* 指定的日期* @return 指定日期按“年-月-日 時:分“格式顯示*/public static String formatTime(Calendar cal) {return time_sdf.format(cal.getTime());}/*** 指定日期的默認顯示,具體格式:年-月-日 時:分* * @param date* 指定的日期* @return 指定日期按“年-月-日 時:分“格式顯示*/public static String formatTime(Date date) {return time_sdf.format(date);}// // formatShortTime// 將日期按照一定的格式轉化為字符串// /*** 默認方式表示的系統(tǒng)當前日期,具體格式:時:分* * @return 默認日期按“時:分“格式顯示*/public static String formatShortTime() {return short_time_sdf.format(getCalendar().getTime());}/*** 指定毫秒數(shù)表示日期的默認顯示,具體格式:時:分* * @param millis* 指定的毫秒數(shù)* @return 指定毫秒數(shù)表示日期按“時:分“格式顯示*/public static String formatShortTime(long millis) {return short_time_sdf.format(new Date(millis));}/*** 指定日期的默認顯示,具體格式:時:分* * @param cal* 指定的日期* @return 指定日期按“時:分“格式顯示*/public static String formatShortTime(Calendar cal) {return short_time_sdf.format(cal.getTime());}/*** 指定日期的默認顯示,具體格式:時:分* * @param date* 指定的日期* @return 指定日期按“時:分“格式顯示*/public static String formatShortTime(Date date) {return short_time_sdf.format(date);}// // parseDate// parseCalendar// parseTimestamp// 將字符串按照一定的格式轉化為日期或時間// /*** 根據(jù)指定的格式將字符串轉換成Date 如輸入:2003-11-19 11:20:20將按照這個轉成時間* * @param src* 將要轉換的原始字符竄* @param pattern* 轉換的匹配格式* @return 如果轉換成功則返回轉換后的日期* @throws ParseException* @throws AIDateFormatException*/public static Date parseDate(String src, String pattern)throws ParseException {return getSDFormat(pattern).parse(src);}/*** 根據(jù)指定的格式將字符串轉換成Date 如輸入:2003-11-19 11:20:20將按照這個轉成時間* * @param src* 將要轉換的原始字符竄* @param pattern* 轉換的匹配格式* @return 如果轉換成功則返回轉換后的日期* @throws ParseException* @throws AIDateFormatException*/public static Calendar parseCalendar(String src, String pattern)throws ParseException {Date date = parseDate(src, pattern);Calendar cal = Calendar.getInstance();cal.setTime(date);return cal;}public static String formatAddDate(String src, String pattern, int amount)throws ParseException {Calendar cal;cal = parseCalendar(src, pattern);cal.add(Calendar.DATE, amount);return formatDate(cal);}/*** 根據(jù)指定的格式將字符串轉換成Date 如輸入:2003-11-19 11:20:20將按照這個轉成時間* * @param src* 將要轉換的原始字符竄* @param pattern* 轉換的匹配格式* @return 如果轉換成功則返回轉換后的時間戳* @throws ParseException* @throws AIDateFormatException*/public static Timestamp parseTimestamp(String src, String pattern)throws ParseException {Date date = parseDate(src, pattern);return new Timestamp(date.getTime());}// // dateDiff// 計算兩個日期之間的差值// /*** 計算兩個時間之間的差值,根據(jù)標志的不同而不同* * @param flag* 計算標志,表示按照年/月/日/時/分/秒等計算* @param calSrc* 減數(shù)* @param calDes* 被減數(shù)* @return 兩個日期之間的差值*/public static int dateDiff(char flag, Calendar calSrc, Calendar calDes) {long millisDiff = getMillis(calSrc) - getMillis(calDes);if (flag == 'y') {return (calSrc.get(calSrc.YEAR) - calDes.get(calDes.YEAR));}if (flag == 'd') {return (int) (millisDiff / DAY_IN_MILLIS);}if (flag == 'h') {return (int) (millisDiff / HOUR_IN_MILLIS);}if (flag == 'm') {return (int) (millisDiff / MINUTE_IN_MILLIS);}if (flag == 's') {return (int) (millisDiff / SECOND_IN_MILLIS);}return 0;}/*** String類型 轉換為Date,* 如果參數(shù)長度為10 轉換格式”yyyy-MM-dd“*如果參數(shù)長度為19 轉換格式”yyyy-MM-dd HH:mm:ss“* * @param text* String類型的時間值*/public void setAsText(String text) throws IllegalArgumentException {if (StringUtils.hasText(text)) {try {if (text.indexOf(":") == -1 && text.length() == 10) {setValue(this.date_sdf.parse(text));} else if (text.indexOf(":") > 0 && text.length() == 19) {setValue(this.datetimeFormat.parse(text));} else {throw new IllegalArgumentException("Could not parse date, date format is error ");}} catch (ParseException ex) {IllegalArgumentException iae = new IllegalArgumentException("Could not parse date: " + ex.getMessage());iae.initCause(ex);throw iae;}} else {setValue(null);}}public static int getYear(){GregorianCalendar calendar=new GregorianCalendar();calendar.setTime(getDate());return calendar.get(Calendar.YEAR);}}轉載于:https://my.oschina.net/budaoniu/blog/605610
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的java重复造轮子系列篇-----时间date的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拦截PHP各种异常和错误,发生致命错误时
- 下一篇: LAMP编译安装,并搭建discuz