Java?如何獲取某年的第一天和最后一天
Java 獲取某年的第一天和最后一天
在統(tǒng)計的數(shù)據(jù)是時候,要統(tǒng)計某年的數(shù)據(jù)。開始時間是某年的第一天,結束時間是某年的最后一天。該如何獲取某年的第一天和最后一天:
獲取當年的第一天和最后一天
private static String datePattern = "yyyy-MM-dd"; /** * 時間轉時間字符串 * @param date 日期 * @param pattern 格式 * @return String */ public static String format(Date date, String pattern) { if (date == null) return ""; return DateFormatUtils.format(date, pattern); } /** * 時間轉時間字符串為yyyy-MM-dd HH:mm:ss 格式 * @param date 日期 * @return String */ public static String formatDateTime(Date date) { if (date == null) return ""; return DateFormatUtils.format(date, datePattern); } /** * 時間字符串轉化為yyyy-MM-dd HH:mm:ss 格式 * @param str 日期 * @return Date */ public static Date parseDateTime(String str) { if (str == null) return null; try { return DateUtils.parseDate(str, datePattern); } catch (ParseException e) { e.printStackTrace(); } return null; } /** * 字符串轉時間 * @param str 字符串 * @param dateTimePattern 格式 * @return Date */ public static Date parseDateTime(String str, String dateTimePattern) { if (str == null) return null; try { return DateUtils.parseDate(str, Locale.CHINESE, dateTimePattern); } catch (ParseException e) { e.printStackTrace(); } return null; } /** * 獲取當年的第一天 */ public static Date getCurrentFirstOfYear(){ Calendar currCal=Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); return getFirstOfYear(currentYear); } /** * 獲取當年的最后一天 */ public static Date getCurrentLastOfYear(){ Calendar currCal=Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); return getLastOfYear(currentYear); } /** * 獲取某年第一天日期 * @param year 年份 * @return Date */ public static Date getFirstOfYear(int year){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); return calendar.getTime(); } /** * 獲取某年最后一天日期 * @param year 年份 * @return Date */ public static Date getLastOfYear(int year){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); return calendar.getTime(); } public static void main(String args[]) { System.out.println("=========current year========="); Date currentYearStart = getCurrentFirstOfYear(); System.out.println(formatDateTime(currentYearStart)); Date currentYearEnd = getCurrentLastOfYear(); System.out.println(formatDateTime(currentYearEnd)); }
結果:
=========current year=========
2022-01-01
2022-12-31
知道了當前年怎么獲取,getLastOfYear(int year)
某年,求獲取某年的年份就可以了,帶入查詢
獲取某年的第一天和最后一天
/** * 獲取某年第一天日期 * @param date 日期 * @return Date */ public static Date getFirstOfYear(Date date){ // int year = date.getYear(); // date.getYear 該方法被廢棄了 int year = Integer.parseInt(String.format("%tY",date)); return getFirstOfYear(year); } /** * 獲取某年最后一天日期 * @param date 日期 * @return Date */ public static Date getLastOfYear(Date date){ int year = Integer.parseInt(String.format("%tY",date)); return getLastOfYear(year); } public static void main(String args[]) { System.out.println("=========before year========="); Date before = parseDateTime("2012-10-10 12:00:00"); Date beforeYearStart = getFirstOfYear(before); System.out.println(formatDateTime(beforeYearStart)); Date beforeEnd = getLastOfYear(before); System.out.println(formatDateTime(beforeEnd)); }
結果:
=========before year=========
2012-01-01
2012-12-31
總結:
獲取某年的年份的第一天和最后一天,先獲取某年的年份,這個應該有很多種方式,再獲取當年的第一天和最后一天
java獲取本月開始時間和結束時間、上個月第一天和最后一天的時間以及當前日期往前推一周、一個月
1、java獲取本月開始時間和結束時間、上個月第一天和最后一天的時間以及當前日期往前推一周、一個月
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import org.junit.Test; public class TestDateUtil { //1、獲取當月第一天 @Test public void testForDate(){ //規(guī)定返回日期格式 SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar=Calendar.getInstance(); Date theDate=calendar.getTime(); GregorianCalendar gcLast=(GregorianCalendar)Calendar.getInstance(); gcLast.setTime(theDate); //設置為第一天 gcLast.set(Calendar.DAY_OF_MONTH, 1); String day_first=sf.format(gcLast.getTime()); //打印本月第一天 System.out.println(day_first); } //2、獲取當月最后一天 @Test public void testForDatelast(){ //獲取Calendar Calendar calendar=Calendar.getInstance(); //設置日期為本月最大日期 calendar.set(Calendar.DATE, calendar.getActualMaximum(calendar.DATE)); //設置日期格式 SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); String ss=sf.format(calendar.getTime()); System.out.println(ss+" 23:59:59"); } //3、非常簡單和實用的獲取本月第一天和最后一天 @Test public void testt(){ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH,1);//設置為1號,當前日期既為本月第一天 String first = format.format(c.getTime()); System.out.println("===============本月first day:"+first); //獲取當前月最后一天 Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = format.format(ca.getTime()); System.out.println("===============本月last day:"+last); } //4、獲取上個月的第一天 @Test public void getBeforeFirstMonthdate()throws Exception{ SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar=Calendar.getInstance(); calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, 1); System.out.println("上個月第一天:"+format.format(calendar.getTime())); } //5、獲取上個月的最后一天 @Test public void getBeforeLastMonthdate()throws Exception{ SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar=Calendar.getInstance(); int month=calendar.get(Calendar.MONTH); calendar.set(Calendar.MONTH, month-1); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); System.out.println("上個月最后一天:"+sf.format(calendar.getTime())); } 6、獲取當前日期的前一周或者前一個月時間 public static String getFirstDate(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Calendar cl = Calendar.getInstance(); // cl.setTime(dateNow); // cl.add(Calendar.DAY_OF_YEAR, -1); //一天 // cl.add(Calendar.WEEK_OF_YEAR, -1); //一周 cl.add(Calendar.MONTH, -1); //從現(xiàn)在算,之前一個月,如果是2個月,那么-1-----》改為-2 Date dateFrom = cl.getTime(); return sdf.format(dateFrom); } @Test public void testStartDate(){ System.out.println("當前日期往前推一個月是:"+getFirstDate()); //如果當前日期是2015.11.08,那么打印日期是:20151008 } }
2、獲得當天開始時間和結束時間
public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date start = calendar.getTime(); calendar.add(Calendar.DAY_OF_MONTH, 1); calendar.add(Calendar.SECOND, -1); Date end = calendar.getTime(); System.out.println(start); System.out.println(end); }
到此這篇關于Java 獲取某年的第一天和最后一天的文章就介紹到這了,更多相關Java 第一天和最后一天內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式
這篇文章主要介紹了Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12SpringCLoud搭建Zuul網(wǎng)關集群過程解析
這篇文章主要介紹了SpringCLoud搭建Zuul網(wǎng)關集群過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03SpringCloud Netfilx Ribbon負載均衡工具使用方法介紹
Ribbon是Netflix的組件之一,負責注冊中心的負載均衡,有助于控制HTTP和TCP客戶端行為。Spring Cloud Netflix Ribbon一般配合Ribbon進行使用,利用在Eureka中讀取的服務信息,在調用服務節(jié)點時合理進行負載2022-12-12java實現(xiàn)ip地址與十進制數(shù)相互轉換
本文介紹在java中IP地址轉換十進制數(shù)及把10進制再轉換成IP地址的方法及實例參考,曬出來和大家分享一下2012-12-12Hibernate+JDBC實現(xiàn)批量插入、更新及刪除的方法詳解
這篇文章主要介紹了Hibernate+JDBC實現(xiàn)批量插入、更新及刪除的方法,結合實例形式較為詳細的分析了Hibernate與JDBC針對數(shù)據(jù)庫的批量操作相關實現(xiàn)技巧,需要的朋友可以參考下2017-11-11spring-data-redis自定義實現(xiàn)看門狗機制
redission看門狗機制是解決分布式鎖的續(xù)約問題,本文主要介紹了spring-data-redis自定義實現(xiàn)看門狗機制,具有一定的參考價值,感興趣的可以了解一下2024-03-03