java 获取当天,前天,明天,本周,上周,本月,上月,本年的开始日期时间和结束日期时间

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(){
//规定返回日期格式
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);
//从现在算,之前一个月,如果是2个月,那么-1-----》改为-2
Date dateFrom = cl.getTime();
return sdf.format(dateFrom);
 }

 @Test
 public void testStartDate(){
 System.out.println("当前日期往前推一个月是:"+getFirstDate());

 //如果当前日期是2015.11.08,那么打印日期是:20151008
 }
}

 

java获取当天,前天,明天,本周,本月,本年的开始日期时间和结束日期时间

import java.sql.Timestamp;
  4 import java.text.ParseException;
  5 import java.text.SimpleDateFormat;
  6 import java.util.ArrayList;
  7 import java.util.Calendar;
  8 import java.util.Date;
  9 import java.util.GregorianCalendar;
 10 import java.util.List;
 11 
 12 public class DateUtils {
 13     //获取当天的开始时间
 14     public static java.util.Date getDayBegin() {
 15         Calendar cal = new GregorianCalendar();
 16         cal.set(Calendar.HOUR_OF_DAY, 0);
 17         cal.set(Calendar.MINUTE, 0);
 18         cal.set(Calendar.SECOND, 0);
 19         cal.set(Calendar.MILLISECOND, 0);
 20         return cal.getTime();
 21     }
 22     //获取当天的结束时间
 23     public static java.util.Date getDayEnd() {
 24         Calendar cal = new GregorianCalendar();
 25         cal.set(Calendar.HOUR_OF_DAY, 23);
 26         cal.set(Calendar.MINUTE, 59);
 27         cal.set(Calendar.SECOND, 59);
 28         return cal.getTime();
 29     }
 30     //获取昨天的开始时间
 31     public static Date getBeginDayOfYesterday() {
 32         Calendar cal = new GregorianCalendar();
 33         cal.setTime(getDayBegin());
 34         cal.add(Calendar.DAY_OF_MONTH, -1);
 35         return cal.getTime();
 36     }
 37     //获取昨天的结束时间
 38     public static Date getEndDayOfYesterDay() {
 39         Calendar cal = new GregorianCalendar();
 40         cal.setTime(getDayEnd());
 41         cal.add(Calendar.DAY_OF_MONTH, -1);
 42         return cal.getTime();
 43     }
 44     //获取明天的开始时间
 45     public static Date getBeginDayOfTomorrow() {
 46         Calendar cal = new GregorianCalendar();
 47         cal.setTime(getDayBegin());
 48         cal.add(Calendar.DAY_OF_MONTH, 1);
 49 
 50         return cal.getTime();
 51     }
 52     //获取明天的结束时间
 53     public static Date getEndDayOfTomorrow() {
 54         Calendar cal = new GregorianCalendar();
 55         cal.setTime(getDayEnd());
 56         cal.add(Calendar.DAY_OF_MONTH, 1);
 57         return cal.getTime();
 58     }
 59     //获取本周的开始时间
 60     public static Date getBeginDayOfWeek() {
 61         Date date = new Date();
 62         if (date == null) {
 63             return null;
 64         }
 65         Calendar cal = Calendar.getInstance();
 66         cal.setTime(date);
 67         int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
 68         if (dayofweek == 1) {
 69             dayofweek += 7;
 70         }
 71         cal.add(Calendar.DATE, 2 - dayofweek);
 72         return getDayStartTime(cal.getTime());
 73     }
 74     //获取本周的结束时间
 75     public static Date getEndDayOfWeek(){
 76         Calendar cal = Calendar.getInstance();
 77         cal.setTime(getBeginDayOfWeek());  
 78         cal.add(Calendar.DAY_OF_WEEK, 6); 
 79         Date weekEndSta = cal.getTime();
 80         return getDayEndTime(weekEndSta);
 81     }
 82     //获取本月的开始时间
 83      public static Date getBeginDayOfMonth() {
 84             Calendar calendar = Calendar.getInstance();
 85             calendar.set(getNowYear(), getNowMonth() - 1, 1);
 86             return getDayStartTime(calendar.getTime());
 87         }
 88     //获取本月的结束时间
 89      public static Date getEndDayOfMonth() {
 90             Calendar calendar = Calendar.getInstance();
 91             calendar.set(getNowYear(), getNowMonth() - 1, 1);
 92             int day = calendar.getActualMaximum(5);
 93             calendar.set(getNowYear(), getNowMonth() - 1, day);
 94             return getDayEndTime(calendar.getTime());
 95         }
 96      //获取本年的开始时间
 97      public static java.util.Date getBeginDayOfYear() {
 98             Calendar cal = Calendar.getInstance();
 99             cal.set(Calendar.YEAR, getNowYear());
100             // cal.set
101             cal.set(Calendar.MONTH, Calendar.JANUARY);
102             cal.set(Calendar.DATE, 1);
103 
104             return getDayStartTime(cal.getTime());
105         }
106      //获取本年的结束时间
107      public static java.util.Date getEndDayOfYear() {
108             Calendar cal = Calendar.getInstance();
109             cal.set(Calendar.YEAR, getNowYear());
110             cal.set(Calendar.MONTH, Calendar.DECEMBER);
111             cal.set(Calendar.DATE, 31);
112             return getDayEndTime(cal.getTime());
113         }
114     //获取某个日期的开始时间
115     public static Timestamp getDayStartTime(Date d) {
116         Calendar calendar = Calendar.getInstance();
117         if(null != d) calendar.setTime(d);
118         calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),    calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
119         calendar.set(Calendar.MILLISECOND, 0);
120         return new Timestamp(calendar.getTimeInMillis());
121     }
122     //获取某个日期的结束时间
123     public static Timestamp getDayEndTime(Date d) {
124         Calendar calendar = Calendar.getInstance();
125         if(null != d) calendar.setTime(d);
126         calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),    calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
127         calendar.set(Calendar.MILLISECOND, 999);
128         return new Timestamp(calendar.getTimeInMillis());
129     }
130     //获取今年是哪一年
131      public static Integer getNowYear() {
132              Date date = new Date();
133             GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
134             gc.setTime(date);
135             return Integer.valueOf(gc.get(1));
136         }
137      //获取本月是哪一月
138      public static int getNowMonth() {
139              Date date = new Date();
140             GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
141             gc.setTime(date);
142             return gc.get(2) + 1;
143         }
144      //两个日期相减得到的天数
145      public static int getDiffDays(Date beginDate, Date endDate) {
146 
147             if (beginDate == null || endDate == null) {
148                 throw new IllegalArgumentException("getDiffDays param is null!");
149             }
150 
151             long diff = (endDate.getTime() - beginDate.getTime())
152                     / (1000 * 60 * 60 * 24);
153 
154             int days = new Long(diff).intValue();
155 
156             return days;
157         }
158     //两个日期相减得到的毫秒数
159      public static long dateDiff(Date beginDate, Date endDate) {
160             long date1ms = beginDate.getTime();
161             long date2ms = endDate.getTime();
162             return date2ms - date1ms;
163         }
164      //获取两个日期中的最大日期
165      public static Date max(Date beginDate, Date endDate) {
166             if (beginDate == null) {
167                 return endDate;
168             }
169             if (endDate == null) {
170                 return beginDate;
171             }
172             if (beginDate.after(endDate)) {
173                 return beginDate;
174             }
175             return endDate;
176         }
177      //获取两个日期中的最小日期
178      public static Date min(Date beginDate, Date endDate) {
179             if (beginDate == null) {
180                 return endDate;
181             }
182             if (endDate == null) {
183                 return beginDate;
184             }
185             if (beginDate.after(endDate)) {
186                 return endDate;
187             }
188             return beginDate;
189         }
190      //返回某月该季度的第一个月
191      public static Date getFirstSeasonDate(Date date) {
192              final int[] SEASON = { 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 };
193             Calendar cal = Calendar.getInstance();
194             cal.setTime(date);
195             int sean = SEASON[cal.get(Calendar.MONTH)];
196             cal.set(Calendar.MONTH, sean * 3 - 3);
197             return cal.getTime();
198         }
199      //返回某个日期下几天的日期
200      public static Date getNextDay(Date date, int i) {
201             Calendar cal = new GregorianCalendar();
202             cal.setTime(date);
203             cal.set(Calendar.DATE, cal.get(Calendar.DATE) + i);
204             return cal.getTime();
205         }
206      //返回某个日期前几天的日期
207      public static Date getFrontDay(Date date, int i) {
208             Calendar cal = new GregorianCalendar();
209             cal.setTime(date);
210             cal.set(Calendar.DATE, cal.get(Calendar.DATE) - i);
211             return cal.getTime();
212         }
213      //获取某年某月到某年某月按天的切片日期集合(间隔天数的日期集合)
214      public static List getTimeList(int beginYear, int beginMonth, int endYear,
215                 int endMonth, int k) {
216             List list = new ArrayList();
217             if (beginYear == endYear) {
218                 for (int j = beginMonth; j <= endMonth; j++) {
219                     list.add(getTimeList(beginYear, j, k));
220 
221                 }
222             } else {
223                 {
224                     for (int j = beginMonth; j < 12; j++) {
225                         list.add(getTimeList(beginYear, j, k));
226                     }
227 
228                     for (int i = beginYear + 1; i < endYear; i++) {
229                         for (int j = 0; j < 12; j++) {
230                             list.add(getTimeList(i, j, k));
231                         }
232                     }
233                     for (int j = 0; j <= endMonth; j++) {
234                         list.add(getTimeList(endYear, j, k));
235                     }
236                 }
237             }
238             return list;
239         }
240      //获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)
241      public static List getTimeList(int beginYear, int beginMonth, int k) {
242             List list = new ArrayList();
243             Calendar begincal = new GregorianCalendar(beginYear, beginMonth, 1);
244             int max = begincal.getActualMaximum(Calendar.DATE);
245             for (int i = 1; i < max; i = i + k) {
246                 list.add(begincal.getTime());
247                 begincal.add(Calendar.DATE, k);
248             }
249             begincal = new GregorianCalendar(beginYear, beginMonth, max);
250             list.add(begincal.getTime());
251             return list;
252         }
253 }

复制代码

 

复制代码

 1 //获取某年某月的第一天日期
 2  public static Date getStartMonthDate(int year, int month) {
 3         Calendar calendar = Calendar.getInstance();
 4         calendar.set(year, month - 1, 1);
 5         return calendar.getTime();
 6     }
 7 
 8 //获取某年某月的最后一天日期
 9    public static Date getEndMonthDate(int year, int month) {
10         Calendar calendar = Calendar.getInstance();
11         calendar.set(year, month - 1, 1);
12         int day = calendar.getActualMaximum(5);
13         calendar.set(year, month - 1, day);
14         return calendar.getTime();
15     }

 

 

根据当前日期获得所在周的日期区间(周一和周日日期)

 public String getTimeInterval(Date date) {  
         Calendar cal = Calendar.getInstance();  
         cal.setTime(date);  
         // 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了  
         int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天  
         if (1 == dayWeek) {  
            cal.add(Calendar.DAY_OF_MONTH, -1);  
         }  
         // System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期  
         // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一  
         cal.setFirstDayOfWeek(Calendar.MONDAY);  
         // 获得当前日期是一个星期的第几天  
         int day = cal.get(Calendar.DAY_OF_WEEK);  
         // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值  
         cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);  
         String imptimeBegin = sdf.format(cal.getTime());  
         // System.out.println("所在周星期一的日期:" + imptimeBegin);  
         cal.add(Calendar.DATE, 6);  
         String imptimeEnd = sdf.format(cal.getTime());  
         // System.out.println("所在周星期日的日期:" + imptimeEnd);  
         return imptimeBegin + "," + imptimeEnd;  
    }

 

根据当前日期获得上周的日期区间(上周周一和周日日期)

  public String getLastTimeInterval() { 
         Calendar calendar1 = Calendar.getInstance();  
         Calendar calendar2 = Calendar.getInstance();  
         int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;  
         int offset1 = 1 - dayOfWeek;  
         int offset2 = 7 - dayOfWeek;  
         calendar1.add(Calendar.DATE, offset1 - 7);  
         calendar2.add(Calendar.DATE, offset2 - 7);  
         // System.out.println(sdf.format(calendar1.getTime()));// last Monday  
         String lastBeginDate = sdf.format(calendar1.getTime());  
         // System.out.println(sdf.format(calendar2.getTime()));// last Sunday  
         String lastEndDate = sdf.format(calendar2.getTime());  
         return lastBeginDate + "," + lastEndDate;  
    }

 

获取一周开始到结束的list集合

public static List<Date> findDates(Date dBegin, Date dEnd)  
     {  
      List lDate = new ArrayList();  
      lDate.add(dBegin);  
      Calendar calBegin = Calendar.getInstance();  
      // 使用给定的 Date 设置此 Calendar 的时间  
      calBegin.setTime(dBegin);  
      Calendar calEnd = Calendar.getInstance();  
      // 使用给定的 Date 设置此 Calendar 的时间  
      calEnd.setTime(dEnd);  
      // 测试此日期是否在指定日期之后  
      while (dEnd.after(calBegin.getTime()))  
      {  
       // 根据日历的规则,为给定的日历字段添加或减去指定的时间量  
       calBegin.add(Calendar.DAY_OF_MONTH, 1);  
       lDate.add(calBegin.getTime());  
      }  
      return lDate;  
     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值