Date对象减100天的两种方式
使用
Calendar类javaimport java.util.Calendar; import java.util.Date; public class Main { public static void main(String[] args) { // 当前日期 Date currentDate = new Date(); System.out.println("当前日期: " + currentDate); // 创建 Calendar 实例 Calendar calendar = Calendar.getInstance(); calendar.setTime(currentDate); // 减去 100 天 calendar.add(Calendar.DAY_OF_MONTH, -100); // 获取新的 Date Date newDate = calendar.getTime(); System.out.println("减去 100 天后的日期: " + newDate); } }使用 java.time 包(java8及以上,推荐,因为是线程安全的且更易使用)
javaimport java.time.LocalDate; import java.time.ZoneId; import java.util.Date; public class Main { public static void main(String[] args) { // 当前日期 LocalDate currentDate = LocalDate.now(); System.out.println("当前日期: " + currentDate); // 减去 100 天 LocalDate newDate = currentDate.minusDays(100); System.out.println("减去 100 天后的日期: " + newDate); // 如果需要将 LocalDate 转换为 Date Date date = Date.from(newDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); System.out.println("转回 Date 格式: " + date); } }
Java8获取指定月份的所有日期
步骤:创建一个指定月份的LocalDate对象 → 获取该月份的第一天日期 → 获取该月份的最后一天日期 → 遍历从第一天到最后一天的所有日期
代码
java// 创建一个指定月份的LocalDate对象 int year = 2023; int month = 9; LocalDate currentMonth = LocalDate.of(year, month, 1); // 获取该月份的第一天日期 LocalDate firstDayOfMonth = currentMonth.withDayOfMonth(1); // 获取该月份的最后一天日期 LocalDate lastDayOfMonth = currentMonth.with(TemporalAdjusters.lastDayOfMonth()); // 遍历从第一天到最后一天的所有日期 LocalDate currentDay = firstDayOfMonth; while (!currentDay.isAfter(lastDayOfMonth)) { System.out.println(currentDay); // 当前日期增加一天 currentDay = currentDay.plusDays(1); }
使用Date自带的函数compareTo比较大小
用法:相等返回0,大于返回1,小于返回-1
javapublic static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date1 = sdf.parse("2012-05-12 15:16:00"); Date date2 = sdf.parse("2011-05-12 15:16:00"); System.out.println(date1.compareTo(date2)); // date1 > date2, 返回1 }
当前日期转字符串
使用SimpleDateFormat
javapublic static void main(String[] args) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String formattedDate = formatter.format(date); System.out.println("Formatted Date: " + formattedDate); }使用DateTimeFormatter
javapublic static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); String formattedDate = now.format(formatter); System.out.println("Formatted Date: " + formattedDate); }使用String.format()方法
javapublic static void main(String[] args) { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // Months are 0-based in Calendar int day = calendar.get(Calendar.DAY_OF_MONTH); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); String formattedDate = String.format("%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, minute, second); System.out.println("Formatted Date: " + formattedDate); }参考文档