Calendar日历类 可以设置时间为过去未来几天

 

有时间日期之类需求可以去smart-resource 智能采集项目 com.smart.resource.hw.collection.utils.DateUtil 里去看更多date操作

目前我的需求为获取当前时间过去第5天那天的所有数据 用到Calendar,所有我做个笔记

介绍Calendar

//        Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
//
//        Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:

/**
 * 获取未来 第几天的日期()+操作
 * 
 * @param after 参数为你想获取当前时间未来第几天的数值
 * @return
 */
public static String getAftertDate(int after) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + after);
    Date today = calendar.getTime();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String result = format.format(today);
    return result;
}

       Calendar.DAY_OF_YEAR年份天数.

        1月1日 这个值为 1,7月4号值为185

/**
 * 获取未来 第几天的 所有 日期( + 操作)
 * @param after
 * @return
 */
public static List<String> getAftertDateList(int after) {
    List<String> pastDateList=new ArrayList<>();
    for (int i = 0; i < after; i++) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + i);
        Date today = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String result = format.format(today);
        pastDateList.add(result);
    }
    return pastDateList;
}
/**
 * 获取过去第几天的日期(- 操作)
 *
 * @param past
 * @return
 */
public static String getPastDate(int past) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
    Date today = calendar.getTime();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String result = format.format(today);
    return result;
}
/**
 * 获取过去第几天的 所有 日期(- 操作)
 *
 * @param past
 * @return
 */
public static List<String> getPastDateList(int past) {
    List<String> pastDateList=new ArrayList<>();
    for (int i = 0; i < past; i++) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i);
        Date today = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String result = format.format(today);
        pastDateList.add(result);
    }
    return pastDateList;
}

以下为Calendar日历类中方法的一些练习

 public static void main(String[] args) throws ParseException {
  // Calendar类静态方法 返回当前时间
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.toInstant());
        // get 方法返回给定日历参数的值
        // DATE 返回当前时间的天数
        int i = calendar.get(Calendar.DATE);
        // YEAR 返回当前时间的年份
        int i1 = calendar.get(Calendar.YEAR);
        System.out.println(i);
        System.out.println(i1);

        // add()方法
        // 修改时间为当前时间的10天后
        calendar.add(Calendar.DATE,10);
        Date time = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String format1 = format.format(time);
        System.out.println(format1+"nnnnnnnnnnnnnnnnn");
        System.out.println(time+"-----------");
        System.out.println(calendar.get(Calendar.DATE));


        // set 方法 将给定的日志参数设置为给定值
        Calendar instance = Calendar.getInstance();
        // DAY_OF_YEAR 值为一年中的天数,比如今天7月4号,这个值就为185 31+28+31+30+31+30+4 1月1号这个值为1
        instance.set(Calendar.DAY_OF_YEAR, instance.get(Calendar.DAY_OF_YEAR) - 2);

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String format3 = dateFormat.format(instance.getTime());
        System.out.println(format3+"mmmmmmmmmmmm");
//        instance.set(Calendar.DATE);
        // getTime() 获取该日历对象转成的日期对象
        int i2 = instance.get(Calendar.DAY_OF_YEAR);
        System.out.println(i2);
        Date today = calendar.getTime();
        SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
        String result = format2.format(today);
        System.out.println(result);


//        日期是有大小关系的,时间靠后,时间越大。

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值