使用Calendar類進行日期處理


1.獲取指定年月日及設置指定時間

int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(time));
int month = Integer.parseInt(new SimpleDateFormat("MM").format(time));
int day = Integer.parseInt(new SimpleDateFormat("dd").format(time));
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, day,17,30);
Calendar calendar1 = Calendar.getInstance();
calendar1.set(year, month - 1, day,18,30);

//時間插入
calendar.getTime();

2.獲取當天最大時間(yyyyMMdd 23:59:59)

  private static Date getEndOfDay(Date date) {
    LocalDateTime localDateTime = LocalDateTime
        .ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault());;
    LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX);
    return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
  }

3.日期格式化

SimpleDateFormat Format = new SimpleDateFormat("yyyy-MM-dd");
Date datetime = Format.parse(date);

4.獲取指定日期月份第一天和最后一天

//獲取本月第一天 
SimpleDateFormat sf=new SimpleDateFormat("MM-dd");
GregorianCalendar gcLast=(GregorianCalendar)Calendar.getInstance();
gcLast.setTime(time);
gcLast.set(Calendar.DAY_OF_MONTH, 1);
String firstDay = sf.format(gcLast.getTime());

//獲取本月最后一天
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.DATE, -1);
calendar.set(Calendar.DATE, calendar.getActualMaximum(calendar.DATE));
String endDay = sf.format(calendar.getTime());

5.獲取指定日期的周一日期與周五日期

 

Calendar calendar = Calendar.getInstance();
calendar.setTime(createDate);
//判斷要計算的日期是否是周日,如果是則減一天計算周六的,否則會出問題,計算到下一周去了 int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);//獲得當前日期是一個星期的第幾天 if(1 == dayWeek) { calendar.add(Calendar.DAY_OF_MONTH, -1); } calendar.setFirstDayOfWeek(Calendar.MONDAY);//設置一個星期的第一天,按中國的習慣一個星期的第一天是星期一 int day = calendar.get(Calendar.DAY_OF_WEEK);//獲得當前日期是一個星期的第幾天 calendar.add(Calendar.DATE, calendar.getFirstDayOfWeek()-day);//根據日歷的規則,給當前日期減去星期幾與一個星期第一天的差值 String starDay = sdf.format(calendar.getTime());
calendar.add(Calendar.DATE,
4); String endDay = sdf.format(calendar.getTime());

6.獲取當前年份,月份,日期,小時,分鍾,秒等

Calendar cale = Calendar.getInstance();
int year = cale.get(Calendar.YEAR); //年份
int nowMonth = cale.get(Calendar.MONTH) + 1; //月份
int day = cale.get(Calendar.DATE); //日期
int hour = cale.get(Calendar.HOUR_OF_DAY); //小時 24小時制
int hour = cale.get(Calendar.Hour)       //小時 12小時制
int minute = cale.get(Calendar.MINUTE); //分鍾
int second = cale.get(Calendar.SECOND); //秒
int dayOfWeek = cale.get(Calendar.DAY_OF_WEEK); //一周第幾天
int dayOfMonth = cale.get(Calendar.DAY_OF_MONTH); //一月第幾天
int dayOfYear = cale.get(Calendar.DAY_OF_YEAR); //一年第幾天


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM