java重复造轮子系列篇-----时间date
生活随笔
收集整理的這篇文章主要介紹了
java重复造轮子系列篇-----时间date
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
時(shí)間操作工具類(lèi)
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;/*** * 類(lèi)描述:時(shí)間操作定義類(lèi)** @date: 日期:2012-12-8 時(shí)間:下午12:15:03* @version 1.0*/ public class DateUtils extends PropertyEditorSupport {// 各種時(shí)間格式public static final SimpleDateFormat date_sdf = new SimpleDateFormat("yyyy-MM-dd");// 各種時(shí)間格式public static final SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyyMMdd");// 各種時(shí)間格式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");// 以毫秒表示的時(shí)間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;// 指定模式的時(shí)間格式private static SimpleDateFormat getSDFormat(String pattern) {return new SimpleDateFormat(pattern);}/*** 當(dāng)前日歷,這里用中國(guó)時(shí)間表示* * @return 以當(dāng)?shù)貢r(shí)區(qū)表示的系統(tǒng)當(dā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// /*** 當(dāng)前日期* * @return 系統(tǒng)當(dāng)前時(shí)間*/public static Date getDate() {return new Date();}/*** 指定毫秒數(shù)表示的日期* * @param millis* 毫秒數(shù)* @return 指定毫秒數(shù)表示的日期*/public static Date getDate(long millis) {return new Date(millis);}/*** 時(shí)間戳轉(zhuǎn)換為字符串* * @param time* @return*/public static String timestamptoStr(Timestamp time) {Date date = null;if (null != time) {date = new Date(time.getTime());}return date2Str(date_sdf);}/*** 字符串轉(zhuǎn)換時(shí)間戳* * @param str* @return*/public static Timestamp str2Timestamp(String str) {Date date = str2Date(str, date_sdf);return new Timestamp(date.getTime());}/*** 字符串轉(zhuǎn)換成日期* @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;}/*** 日期轉(zhuǎn)換為字符串* * @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);}/*** 格式化時(shí)間* @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);}/*** 日期轉(zhuǎn)換為字符串* * @param date* 日期* @param format* 日期格式* @return 字符串*/public static String date2Str(Date date, SimpleDateFormat date_sdf) {if (null == date) {return null;}return date_sdf.format(date);}/*** 日期轉(zhuǎn)換為字符串* * @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ù)的時(shí)間戳* * @param millis* 毫秒數(shù)* @return 指定毫秒數(shù)的時(shí)間戳*/public static Timestamp getTimestamp(long millis) {return new Timestamp(millis);}/*** 以字符形式表示的時(shí)間戳* * @param time* 毫秒數(shù)* @return 以字符形式表示的時(shí)間戳*/public static Timestamp getTimestamp(String time) {return new Timestamp(Long.parseLong(time));}/*** 系統(tǒng)當(dāng)前的時(shí)間戳* * @return 系統(tǒng)當(dāng)前的時(shí)間戳*/public static Timestamp getTimestamp() {return new Timestamp(new Date().getTime());}/*** 指定日期的時(shí)間戳* * @param date* 指定日期* @return 指定日期的時(shí)間戳*/public static Timestamp getTimestamp(Date date) {return new Timestamp(date.getTime());}/*** 指定日歷的時(shí)間戳* * @param cal* 指定日歷* @return 指定日歷的時(shí)間戳*/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í)間的毫秒數(shù)* * @return 系統(tǒng)時(shí)間的毫秒數(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í)間戳的毫秒數(shù)* * @param ts* 指定時(shí)間戳* @return 指定時(shí)間戳的毫秒數(shù)*/public static long getMillis(Timestamp ts) {return ts.getTime();}// // formatDate// 將日期按照一定的格式轉(zhuǎn)化為字符串// /*** 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期,具體格式:年-月-日* * @return 默認(rèn)日期按“年-月-日“格式顯示*/public static String formatDate() {return date_sdf.format(getCalendar().getTime());}/*** 獲取時(shí)間字符串*/public static String getDataString(SimpleDateFormat formatstr) {return formatstr.format(getCalendar().getTime());}/*** 指定日期的默認(rèn)顯示,具體格式:年-月-日* * @param cal* 指定的日期* @return 指定日期按“年-月-日“格式顯示*/public static String formatDate(Calendar cal) {return date_sdf.format(cal.getTime());}/*** 指定日期的默認(rèn)顯示,具體格式:年-月-日* * @param date* 指定的日期* @return 指定日期按“年-月-日“格式顯示*/public static String formatDate(Date date) {return date_sdf.format(date);}/*** 指定毫秒數(shù)表示日期的默認(rèn)顯示,具體格式:年-月-日* * @param millis* 指定的毫秒數(shù)* @return 指定毫秒數(shù)表示日期按“年-月-日“格式顯示*/public static String formatDate(long millis) {return date_sdf.format(new Date(millis));}/*** 默認(rèn)日期按指定格式顯示* * @param pattern* 指定的格式* @return 默認(rèn)日期按指定格式顯示*/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// 將日期按照一定的格式轉(zhuǎn)化為字符串// /*** 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期,具體格式:年-月-日 時(shí):分* * @return 默認(rèn)日期按“年-月-日 時(shí):分“格式顯示*/public static String formatTime() {return time_sdf.format(getCalendar().getTime());}/*** 指定毫秒數(shù)表示日期的默認(rèn)顯示,具體格式:年-月-日 時(shí):分* * @param millis* 指定的毫秒數(shù)* @return 指定毫秒數(shù)表示日期按“年-月-日 時(shí):分“格式顯示*/public static String formatTime(long millis) {return time_sdf.format(new Date(millis));}/*** 指定日期的默認(rèn)顯示,具體格式:年-月-日 時(shí):分* * @param cal* 指定的日期* @return 指定日期按“年-月-日 時(shí):分“格式顯示*/public static String formatTime(Calendar cal) {return time_sdf.format(cal.getTime());}/*** 指定日期的默認(rèn)顯示,具體格式:年-月-日 時(shí):分* * @param date* 指定的日期* @return 指定日期按“年-月-日 時(shí):分“格式顯示*/public static String formatTime(Date date) {return time_sdf.format(date);}// // formatShortTime// 將日期按照一定的格式轉(zhuǎn)化為字符串// /*** 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期,具體格式:時(shí):分* * @return 默認(rèn)日期按“時(shí):分“格式顯示*/public static String formatShortTime() {return short_time_sdf.format(getCalendar().getTime());}/*** 指定毫秒數(shù)表示日期的默認(rèn)顯示,具體格式:時(shí):分* * @param millis* 指定的毫秒數(shù)* @return 指定毫秒數(shù)表示日期按“時(shí):分“格式顯示*/public static String formatShortTime(long millis) {return short_time_sdf.format(new Date(millis));}/*** 指定日期的默認(rèn)顯示,具體格式:時(shí):分* * @param cal* 指定的日期* @return 指定日期按“時(shí):分“格式顯示*/public static String formatShortTime(Calendar cal) {return short_time_sdf.format(cal.getTime());}/*** 指定日期的默認(rèn)顯示,具體格式:時(shí):分* * @param date* 指定的日期* @return 指定日期按“時(shí):分“格式顯示*/public static String formatShortTime(Date date) {return short_time_sdf.format(date);}// // parseDate// parseCalendar// parseTimestamp// 將字符串按照一定的格式轉(zhuǎn)化為日期或時(shí)間// /*** 根據(jù)指定的格式將字符串轉(zhuǎn)換成Date 如輸入:2003-11-19 11:20:20將按照這個(gè)轉(zhuǎn)成時(shí)間* * @param src* 將要轉(zhuǎn)換的原始字符竄* @param pattern* 轉(zhuǎn)換的匹配格式* @return 如果轉(zhuǎn)換成功則返回轉(zhuǎn)換后的日期* @throws ParseException* @throws AIDateFormatException*/public static Date parseDate(String src, String pattern)throws ParseException {return getSDFormat(pattern).parse(src);}/*** 根據(jù)指定的格式將字符串轉(zhuǎn)換成Date 如輸入:2003-11-19 11:20:20將按照這個(gè)轉(zhuǎn)成時(shí)間* * @param src* 將要轉(zhuǎn)換的原始字符竄* @param pattern* 轉(zhuǎn)換的匹配格式* @return 如果轉(zhuǎn)換成功則返回轉(zhuǎn)換后的日期* @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ù)指定的格式將字符串轉(zhuǎn)換成Date 如輸入:2003-11-19 11:20:20將按照這個(gè)轉(zhuǎn)成時(shí)間* * @param src* 將要轉(zhuǎn)換的原始字符竄* @param pattern* 轉(zhuǎn)換的匹配格式* @return 如果轉(zhuǎn)換成功則返回轉(zhuǎn)換后的時(shí)間戳* @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ì)算兩個(gè)日期之間的差值// /*** 計(jì)算兩個(gè)時(shí)間之間的差值,根據(jù)標(biāo)志的不同而不同* * @param flag* 計(jì)算標(biāo)志,表示按照年/月/日/時(shí)/分/秒等計(jì)算* @param calSrc* 減數(shù)* @param calDes* 被減數(shù)* @return 兩個(gè)日期之間的差值*/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類(lèi)型 轉(zhuǎn)換為Date,* 如果參數(shù)長(zhǎng)度為10 轉(zhuǎn)換格式”yyyy-MM-dd“*如果參數(shù)長(zhǎng)度為19 轉(zhuǎn)換格式”yyyy-MM-dd HH:mm:ss“* * @param text* String類(lèi)型的時(shí)間值*/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);}}轉(zhuǎn)載于:https://my.oschina.net/budaoniu/blog/605610
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java重复造轮子系列篇-----时间date的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 拦截PHP各种异常和错误,发生致命错误时
- 下一篇: LAMP编译安装,并搭建discuz