使用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); //一年第几天
posted @ 2019-12-06 11:12  47Knife  阅读(1179)  评论(0编辑  收藏  举报