Java基於apache.commons.lang的日期工具類簡單封裝
package cn.lettleprincess.util; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; /** * @ClassName:MyDateUtils * @Description:日期操作類工具。 * @Author:hankaibo * @date:2013-8-18 * @UpdateUser:hankaibo * @UpdateDate:2013-8-18 上午10:36:19 * @UpdateRemark:What is modified? */ public class MyDateUtils { private final static String DATE_FORMAT = "yyyy-MM-dd"; private final static String DATE_FORMAT_CN = "yyyy年MM月dd日"; private final static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; private final static String TIME_FORMAT_CN = "yyyy年MM月dd日 HH:mm:ss"; private final static String MONTH_FORMAT = "yyyy-MM"; private final static String DAY_FORMAT = "yyyyMMdd"; /** * @Title:getMonthFirstDay * @Description: 得到當前月的第一天. * @return * @return String */ public static String getMonthFirstDay() { Calendar cal = Calendar.getInstance(); // 方法一,預設只設置到年和月份. // Calendar f = (Calendar) cal.clone(); // f.clear(); // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH)); // f.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DATE)); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法二. cal.set(Calendar.DATE, 1); return DateFormatUtils.format(cal, DATE_FORMAT); } /** * @Title:getMonthLastDay * @Description: 得到當前月最後一天 * @return * @return String */ public static String getMonthLastDay() { Calendar cal = Calendar.getInstance(); Calendar f = (Calendar) cal.clone(); f.clear(); // 方法一 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); // f.set(Calendar.MILLISECOND, -1); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法二 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH)); // f.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE)); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法三(同一) cal.set(Calendar.DATE, 1);// 設為當前月的1號 cal.add(Calendar.MONTH, 1);// 加一個月,變為下月的1號 cal.add(Calendar.DATE, -1);// 減去一天,變為當月最後一天 return DateFormatUtils.format(cal, DATE_FORMAT); } /** * @Title:getPreviousMonthFirst * @Description: 得到上個月的第一天 * @return * @return String */ public static String getPreviousMonthFirst() { Calendar cal = Calendar.getInstance(); Calendar f = (Calendar) cal.clone(); f.clear(); // 方法一 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1); // f.set(Calendar.DATE, 1); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法二 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1); // f.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DATE)); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法三(同一) cal.set(Calendar.DATE, 1);// 設為當前月的1號 cal.add(Calendar.MONTH, -1); return DateFormatUtils.format(cal, DATE_FORMAT); } /** * @Title:getPreviousMonthEnd * @Description: 得到上個月最後一天 * @return * @return String */ public static String getPreviousMonthEnd() { Calendar cal = Calendar.getInstance(); Calendar f = (Calendar) cal.clone(); f.clear(); // 方法一 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH)); // f.set(Calendar.MILLISECOND, -1); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法二 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1); // f.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE)); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法三(同一) cal.set(Calendar.DATE, 1);// 設為當前月的1號 cal.add(Calendar.MONTH, 0);// cal.add(Calendar.DATE, -1);// 減去一天,變為當月最後一天 return DateFormatUtils.format(cal, DATE_FORMAT); } /** * @Title:getNextMonthFirst * @Description: 得到下個月的第一天 * @return * @return String */ public static String getNextMonthFirst() { Calendar cal = Calendar.getInstance(); Calendar f = (Calendar) cal.clone(); f.clear(); // 方法一 // f.set(Calendar.YEAR, cal.get(Calendar.YEAR)); // f.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); // f.set(Calendar.DATE, 1); // or f.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DATE)); // return DateFormatUtils.format(f, DATE_FORMAT); // 方法二 cal.set(Calendar.DATE, 1);// 設為當前月的1號 cal.add(Calendar.MONTH, +1);// 加一個月,變為下月的1號 return DateFormatUtils.format(cal, DATE_FORMAT); } /** * @Title:getNextMonthEnd * @Description: 得到下個月最後一天。 * @return * @return String */ public static String getNextMonthEnd() { Calendar cal = Calendar.getInstance(); // cal.set(Calendar.DATE, +1); // cal.add(Calendar.MONTH, +2); // cal.add(Calendar.DATE, -1); // return DateFormatUtils.format(cal, DATE_FORMAT); // 方法二 cal.add(Calendar.MONTH, 1);// 加一個月 cal.set(Calendar.DATE, 1);// 把日期設定為當月第一天 cal.roll(Calendar.DATE, -1);// 日期回滾一天,也就是本月最後一天 return DateFormatUtils.format(cal, DATE_FORMAT); } /** * @Title:getCurrentMonthDays * @Description: 得到當前月的天數 * @return * @return int */ public static int getCurrentMonthDays() { Calendar cal = new GregorianCalendar();// Calendar.getInstance(); int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH); return days; } /** * @Title:getSpecifiedMonthDays * @Description: 得到指定的月份的天數 * @param date * @return * @return int */ public static int getSpecifiedMonthDays(String date) { Calendar cal = Calendar.getInstance(); try { cal.setTime(DateUtils.parseDate(date, MONTH_FORMAT)); int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH); return days; } catch (Exception e1) { e1.printStackTrace(); } return 0; } /** * @Title:getCurrentDate * @Description: 得到當前日期 * @return * @return String */ public static String getCurrentDate() { Calendar cal = Calendar.getInstance(); String currentDate = DateFormatUtils.format(cal, DATE_FORMAT); return currentDate; } /** * @Title:getCurrentTime * @Description: 得到當前的時間 * @return * @return String */ public static String getCurrentTime() { Calendar cal = Calendar.getInstance(); String currentDate = DateFormatUtils.format(cal, TIME_FORMAT); return currentDate; } /** * @Title:getOffsetDate * @Description: 得到與當前日期偏移量為X的日期。 * @param offset * @return * @return String */ public static String getOffsetDate(int offset) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, offset); String currentDate = DateFormatUtils.format(cal, DATE_FORMAT); return currentDate; } /** * @Title:getSpecifiedOffsetDate * @Description: 得到與指定日期偏移量為X的日期。 * @param specifiedDate指定的日期 * ,格式為YYYY-MM-DD * @param offset * @return 返回yyyy-MM-dd格式的字串日期 * @return String * @throws ParseException */ public static String getSpecifiedOffsetDate(String specifiedDate, int offset) throws ParseException { Date date = DateUtils.parseDate(specifiedDate, DATE_FORMAT); Calendar cal = DateUtils.toCalendar(date); cal.add(Calendar.DAY_OF_MONTH, offset); String returnDate = DateFormatUtils.format(cal, DATE_FORMAT); return returnDate; } /** * @Title:getSpecifiedOffsetTime * @Description: 得到與指定日期時間偏移量為X的時間。 * @param specifiedTime * 指定的時間,格式為yyyy-MM-dd HH:mm:ss * @param offset * 偏移天數 * @return 返回yyyy-MM-dd HH:mm:ss格式的字串時間 * @throws ParseException * @return String */ public static String getSpecifiedOffsetTime(String specifiedTime, int offset) throws ParseException { Date date = DateUtils.parseDate(specifiedTime, TIME_FORMAT); Calendar cal = DateUtils.toCalendar(date); cal.add(Calendar.DAY_OF_MONTH, offset); String returnDate = DateFormatUtils.format(cal, TIME_FORMAT); return returnDate; } /** * @Title:getOffsetDateTime * @Description: 得到與指定日期時間偏移量為X的時間。 * @param specifiedDateTime * 指定的時間,格式為yyyy-MM-dd HH:mm:ss/yyyy-MM-dd * @param offset * 偏移天數 * @return * @throws ParseException * @return String */ public static String getOffsetDateTime(String specifiedDateTime, int offset) throws ParseException { String regexStr = "\\d{4}-\\d{2}-\\d{2}"; if (specifiedDateTime.matches(regexStr)) { return getSpecifiedOffsetDate(specifiedDateTime, offset); } else { return getSpecifiedOffsetTime(specifiedDateTime, offset); } } /** * 判斷是否為潤年 * * @param year * @return */ public static boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } /** * @Title:getWeekDay * @Description: 判斷是星期幾. * @param c * @return * @return String */ public static String getWeekDay(Calendar c) { if (c == null) { return "星期一"; } switch (c.get(Calendar.DAY_OF_WEEK)) { case Calendar.MONDAY: return "星期一"; case Calendar.TUESDAY: return "星期二"; case Calendar.WEDNESDAY: return "星期三"; case Calendar.THURSDAY: return "星期四"; case Calendar.FRIDAY: return "星期五"; case Calendar.SATURDAY: return "星期六"; default: return "星期日"; } } /** * @Title:getDaysListBetweenDates * @Description: 獲得兩個日期之間的連續日期. * @param begin * 開始日期 . * @param end * 結束日期 . * @return * @return List<String> */ public static List<String> getDaysListBetweenDates(String begin, String end) { List<String> dateList = new ArrayList<String>(); Date d1; Date d2; try { d1 = DateUtils.parseDate(begin, DATE_FORMAT); d2 = DateUtils.parseDate(end, DATE_FORMAT); if (d1.compareTo(d2) > 0) { return dateList; } do { dateList.add(DateFormatUtils.format(d1, DATE_FORMAT)); d1 = DateUtils.addDays(d1, 1); } while (d1.compareTo(d2) <= 0); } catch (ParseException e) { e.printStackTrace(); } return dateList; } /** * @Title:getMonthsListBetweenDates * @Description: 獲得連續的月份 * @param begin * @param end * @return * @return List<String> */ public static List<String> getMonthsListBetweenDates(String begin, String end) { List<String> dateList = new ArrayList<String>(); Date d1; Date d2; try { d1 = DateUtils.parseDate(begin, DATE_FORMAT); d2 = DateUtils.parseDate(end, DATE_FORMAT); if (d1.compareTo(d2) > 0) { return dateList; } do { dateList.add(DateFormatUtils.format(d1, MONTH_FORMAT)); d1 = DateUtils.addMonths(d1, 1); } while (d1.compareTo(d2) <= 0); } catch (ParseException e) { e.printStackTrace(); } return dateList; } /** * @Title:long2Time * @Description: 將long型別的時間值轉換成標準格式的時間(yyyy-MM-dd HH:mm:ss) * @param createTime * @return * @return String */ public static String long2Time(String createTime) { long fooTime = Long.parseLong(createTime) * 1000L; return DateFormatUtils.format(fooTime, TIME_FORMAT); } public static void main(String[] args) throws ParseException { System.out.println(getMonthFirstDay()); System.out.println(getMonthLastDay()); System.out.println(getPreviousMonthFirst()); System.out.println(getPreviousMonthEnd()); System.out.println(getNextMonthFirst()); System.out.println(getNextMonthEnd()); System.out.println(getCurrentMonthDays()); System.out.println(getSpecifiedMonthDays("1900-02")); System.out.println(getCurrentDate()); System.out.println(getOffsetDate(-4)); System.out.println(isLeapYear(1900)); System.out.println(getWeekDay(Calendar.getInstance())); System.out.println(getDaysListBetweenDates("2012-1-12", "2012-1-21")); System.out.println(getMonthsListBetweenDates("2012-1-12", "2012-3-21")); System.out.println(getSpecifiedOffsetTime("2012-09-09 12:12:12", 12)); System.out.println(getOffsetDateTime("2012-09-09", 12)); System.out.println(getOffsetDateTime("2012-09-09 12:12:12", 12)); System.out.println(long2Time("1234567890")); } }
相關推薦
Java基於apache.commons.lang的日期工具類簡單封裝
package cn.lettleprincess.util; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util
日期工具類 DateUtils(繼承org.apache.commons.lang.time.DateUtils類)
/** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; import java.text.ParseException; import java.
org.apache.commons.lang3.StringUtils工具類常用方法
在開發中,Apache 的 StringUtils 工具類有許多方法比 jdk 實現的方便許多。所有整理了幾個常用的: import org.apache.commons.lang3.StringUtils; public class StringUtilsTest {
Apache Commons包 StringUtils工具類深入整理
字串是在程式開發中最常見的,Apache Commons開源專案在org.apache.commons.lang3包下提供了StringUtils工具類,該類相當於是對jdk自帶的String類的增強,主要做了幾方面的處理: 1.核心設計理念就是對於null的進行內部處理,使用時不再
commons-lang常用工具類StringEscapeUtils
1.escapeSql 提供sql轉移功能,防止sql注入攻擊,例如典型的萬能密碼攻擊' ' or 1=1 ' 'StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_sel
org.apache.commons.beanutils.BeanUtils 工具類詳解
1、建立User類 package com.kd.zhouyuan.entity; import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class User {pri
Lucene5學習之LuceneUtils工具類簡單封裝
週六花了整整一下午,將Lucene5中有關索引的常見操作進行了簡單封裝,廢話不多說,上程式碼: package com.yida.framework.lucene5.util; import java.io.IOException; import java.util.c
Redis儲存快取工具類簡單封裝
一、公共實體類 (1)User.java package cn.xiyou.entity; import java.io.Serializable; /** * User實體 * * @author XIOAHU * */ publi
LuceneUtils工具類簡單封裝
週六花了整整一下午,將Lucene5中有關索引的常見操作進行了簡單封裝,廢話不多說,上程式碼:package com.yida.framework.lucene5.util; import java.io.IOException; import java.util.concurrent.ExecutorSe
Android APP更新下載工具類——簡單封裝DownloadManager
幾乎所有APP都包含了檢查更新功能,更新下載功能的實現方式常用的有兩種:1、使用App網路框架的檔案下載請求;2、使用自帶的DownloadManager類;本文介紹第二種,簡單封裝一下DownloadManager進行下載更新。重要宣告:本文嚴格意義上來說並非原創,參考了
Bag集合工具類(apache-commons-collections3.2工具包)在java中的使用
Bag 是在 org.apache.commons.collections 包中定義的介面 ,也是集合的一種擴充工具類,當然結合用JDK中的map類進行相應的邏輯處理,也能實現Bag類的功能,但
org.apache.commons.lang.StringUtils(StringUtils工具類的常用方法)
工作容易遇到的: 必須要8位,不夠的就拿0去補 System.out.println(StringUtils.leftPad("34", 8, "0")); // 00000034 又或者你需要在一個數組中加入一個元素,你可以這麼做: 把數組裡的字串用:連線 S
字串工具類 org.apache.commons.lang.StringUtils
//null 和 “”操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //判斷是否Null 或者 “” System.out.println(StringUtils.isEmpty(null)); System.out.printl
Java日期工具類
multipl efault 簡體中文 類型 分鐘 sub dateutil 表示 exception public class DateUtil { //默認顯示日期的格式 public static final String DATAFORMAT_ST
java之日期工具類DATE
java日期工具類 import java.text.SimpleDateFormat; import java.util.*; public class DateUtil { /** * 獲取SimpleDateFormat * @param parttern 日
SimpleDateFormatUtils-java日期工具類
寫了個日期工具類 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 格式化日期的工具類 * @author * */ public
關於找不到類org/apache/commons/lang/xwork/StringUtils的問題
blog http html 兩個 ack style 引用 utils 有一個 在替換最新版的 struts2包的解決過程中。遇到 找不到這兩個包org/apache/common
java工具類-日期工具類
1、獲得時間戳 為了統一其他語言的如php和unix系統獲取的時間戳是10位長度的,精確到秒。 java時間戳長度是13位,精確到毫秒 我們獲取時間戳需要相應處理。 //獲取當前時間戳,除以1000,獲取到長度為10位的,精確到秒 public s
java時間日期工具類
package com.bigname.common; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date;
java.lang.ClassNotFoundException:org.apache.commons.lang.text.StrLookup
日誌資訊:2018-05-24 09:18:19.605 [main] ERROR org.springframework.boot.SpringApplication - Application startup failed org.springframework.