有时间日期之类需求可以去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); // 日期是有大小关系的,时间靠后,时间越大。}