date()
-
表示日期和时间的对象,在 java.util 包中
-
常用方法 注意获取年份是用1900开始的,月份是从 0开始的,所以一般当前年份要+1900,获取月份要+1
Date date = new Date(); int year = date.getYear()+1900; int month = date.getMonth()+1; int day = date.getDay(); int hours = date.getHours(); int minutes = date.getMinutes(); int seconds = date.getSeconds(); long time = date.getTime(); // 获取时间戳
-
date格式化
// 使用 simpleDateFormat 对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sdf.format(new Date());
-
date比较
// 比较最大日期与当前日期 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); if (date.compareTo(sdf2.parse("2024-06-30"))>0){ System.out.println("今天在 2024-06-20 后前(大于)"); }else if (date.compareTo(sdf.parse("2024-06-30"))<0){ System.out.println("今天在 2024-06-20 之前(小于)"); }else { System.out.println("今天是 2024-06-30"); }
LocalDateTime()
-
localDateTime()时间体系有 LocalDateTime() (yyyy-MM-ddTHH:mm:ss.SSS) ,LocalDate() (yyyy-MM-dd) 和 LocalTime() (HH:mm:ss.SSS) 三个对象
-
三种对象的使用
LocalDate d = LocalDate.now(); // 当前日期 LocalTime t = LocalTime.now(); // 当前时间 LocalDateTime dt = LocalDateTime.now(); // 当前日期和时间 System.out.println(d); // 严格按照ISO 8601格式打印 System.out.println(t); // 严格按照ISO 8601格式打印 System.out.println(dt); // 严格按照ISO 8601格式打印 // 2024-07-04 // 14:33:28.514 // 2024-07-04T14:33:28.514
-
自定义时间
LocalDateTime dt2 = LocalDateTime.of(2019, 11, 30, 15, 16, 17); LocalDate localDate = LocalDate.of(2019, 11, 25); LocalTime localTime = LocalTime.of(10, 20, 30);
-
格式化时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format = formatter.format(LocalDateTime.now()); System.out.println(format);
-
调整时间
// 获取当前日期 LocalDateTime now = LocalDateTime.now(); // 在当前日期基础上加12天 LocalDateTime localDateTime = now.plusDays(12); System.out.println(localDateTime); // 在当前日期基础上减3天 LocalDateTime localDateTime1 = now.minusDays(3); System.out.println(localDateTime1); // 在当前日期基础设置当前日期为15日 LocalDateTime localDateTime2 = now.withDayOfMonth(15); System.out.println(localDateTime2); // 在当前日期基础上设置当前月份为12月 LocalDateTime localDateTime3 = now.withMonth(12); System.out.println(localDateTime3); // 在当前日期基础上设置当前日期为本月的最后一天 LocalDateTime with = now.with(TemporalAdjusters.lastDayOfMonth()); System.out.println(with); // 在当前日期基础上设置当前日期为本月的第一周的星期一 LocalDateTime with1 = now.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); System.out.println(with1);
-
时间的比较
// 时间的比较 isBefore isAfter boolean before = LocalDate.now().isBefore(LocalDate.of(2019, 11, 25)); System.out.println(before); boolean after = LocalDate.now().isAfter(LocalDate.of(2019, 11, 25)); System.out.println(after); // 判断两个日期之间间隔时间 LocalDateTime localDateTime4 = LocalDateTime.of(2024, 11, 25, 15, 16, 17); LocalDateTime localDateTime5 = LocalDateTime.of(2024, 12, 24, 1, 25, 2); Duration between = Duration.between(localDateTime4, localDateTime5); System.out.println(between); // PT682H8M45S 表示相差 682个小时 8分钟 45秒
localDate , date() 相互转换
-
localDate() 转 Date()
java.util.Date date = Date.valueOf(localDate);
-
Date 转 localDate
LocalDate localDate6 = new java.util.Date().toInstant().atOffset(ZoneOffset.UTC).toLocalDate();
Calendar()对象
- 日期对象 方便处理时间,对时间的计算
- 获取年 月 日 …
Calendar calendar =Calendar.getInstance();
// 获取年 月 日 时 分 秒
int i2 = calendar.get(Calendar.YEAR); // 2024 当前年份
int i3 = calendar.get(Calendar.MONTH)+1; //7 第几个月 当前月份 - 1
int i4 = calendar.get(Calendar.DAY_OF_MONTH); // 12 当前月份的第几天
int i5 = calendar.get(Calendar.DAY_OF_YEAR); // 194 当前年分的第几天
int i6 = calendar.get(Calendar.DAY_OF_WEEK); // 6 这周的第几天
int i7 = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH); // 2 当前月份的第几周
int i1 = calendar.get(Calendar.HOUR); // 12 时制的第几个小时
int i = calendar.get(Calendar.HOUR_OF_DAY); // 24 时制的第几个小时
int i8 = calendar.get(Calendar.MINUTE); // 分钟
int i9 = calendar.get(Calendar.SECOND); // 秒
-
设置年 月 日 …
calendar.set(Calendar.YEAR,2024); calendar.set(Calendar.MONTH,11);
-
计算日期
calendar.add(Calendar.YEAR,1); // 在当前日期对象添加一年 calendar.add(Calendar.MONTH,-2); // 在当前日期对象减少2个月
-
转化为时间戳
calendar.getTimeInMillis(); calendar.getTime().getTime();
Calendar与Date的相互转化
-
date 转 calendar
Date date = new Date(); calendar.setTime(date);
-
calendar转 calendar
Calendar calendar =Calendar.getInstance(); Date time = calendar.getTime();