欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?如何獲取某年的第一天和最后一天

 更新時間:2023年07月21日 10:47:53   作者:天狼1222  
在統(tǒng)計的數(shù)據(jù)是時候,要統(tǒng)計某年的數(shù)據(jù),開始時間是某年的第一天,結束時間是某年的最后一天,該如何獲取某年的第一天和最后一天,今天通過本文介紹下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)化方式

    這篇文章主要介紹了Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java?生成透明圖片的設置實現(xiàn)demo

    Java?生成透明圖片的設置實現(xiàn)demo

    這篇文章主要為大家介紹了Java?生成透明圖片的設置實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 淺析Java中的Caffeine緩存源碼

    淺析Java中的Caffeine緩存源碼

    這篇文章主要介紹了淺析Java中的Caffeine緩存源碼,Caffeine是一個Java開發(fā)的高性能緩存庫,它提供了一種簡單而強大的方式來管理內存中的緩存數(shù)據(jù),Caffeine的設計目標是提供快速、高效的緩存訪問,同時保持簡單易用的API,本文針對其部分源碼做出解析,需要的朋友可以參考下
    2023-10-10
  • SpringCLoud搭建Zuul網(wǎng)關集群過程解析

    SpringCLoud搭建Zuul網(wǎng)關集群過程解析

    這篇文章主要介紹了SpringCLoud搭建Zuul網(wǎng)關集群過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringCloud Netfilx Ribbon負載均衡工具使用方法介紹

    SpringCloud Netfilx Ribbon負載均衡工具使用方法介紹

    Ribbon是Netflix的組件之一,負責注冊中心的負載均衡,有助于控制HTTP和TCP客戶端行為。Spring Cloud Netflix Ribbon一般配合Ribbon進行使用,利用在Eureka中讀取的服務信息,在調用服務節(jié)點時合理進行負載
    2022-12-12
  • Java封裝好的mail包發(fā)送電子郵件的類

    Java封裝好的mail包發(fā)送電子郵件的類

    本文給大家分享了2個java封裝好的mail包發(fā)送電子郵件的類,并附上使用方法,小伙伴們可以根據(jù)自己的需求自由選擇。
    2016-01-01
  • java實現(xiàn)通訊錄管理系統(tǒng)

    java實現(xiàn)通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • java實現(xiàn)ip地址與十進制數(shù)相互轉換

    java實現(xiàn)ip地址與十進制數(shù)相互轉換

    本文介紹在java中IP地址轉換十進制數(shù)及把10進制再轉換成IP地址的方法及實例參考,曬出來和大家分享一下
    2012-12-12
  • Hibernate+JDBC實現(xiàn)批量插入、更新及刪除的方法詳解

    Hibernate+JDBC實現(xiàn)批量插入、更新及刪除的方法詳解

    這篇文章主要介紹了Hibernate+JDBC實現(xiàn)批量插入、更新及刪除的方法,結合實例形式較為詳細的分析了Hibernate與JDBC針對數(shù)據(jù)庫的批量操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-11-11
  • spring-data-redis自定義實現(xiàn)看門狗機制

    spring-data-redis自定義實現(xiàn)看門狗機制

    redission看門狗機制是解決分布式鎖的續(xù)約問題,本文主要介紹了spring-data-redis自定義實現(xiàn)看門狗機制,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03

最新評論