Date() 、LocalDateTime()、Calendar() 之间的转换

date()

  1. 表示日期和时间的对象,在 java.util 包中

  2. 常用方法 注意获取年份是用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();  // 获取时间戳
    
    
  3. date格式化

    // 使用 simpleDateFormat 对象
    SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String format = sdf.format(new Date());
    
  4. 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()

  1. localDateTime()时间体系有 LocalDateTime() (yyyy-MM-ddTHH:mm:ss.SSS) ,LocalDate() (yyyy-MM-dd) 和 LocalTime() (HH:mm:ss.SSS) 三个对象

  2. 三种对象的使用

            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
    
  3. 自定义时间

            LocalDateTime dt2 = LocalDateTime.of(2019, 11, 30, 15, 16, 17);
            LocalDate localDate = LocalDate.of(2019, 11, 25);
            LocalTime localTime = LocalTime.of(10, 20, 30);
    
  4. 格式化时间

            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String format = formatter.format(LocalDateTime.now());
            System.out.println(format);
    
  5. 调整时间

            // 获取当前日期
            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);
    
  6. 时间的比较

            // 时间的比较 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() 相互转换

  1. localDate() 转 Date()

    java.util.Date date = Date.valueOf(localDate);
    
  2. Date 转 localDate

    LocalDate localDate6 = new java.util.Date().toInstant().atOffset(ZoneOffset.UTC).toLocalDate();
    

Calendar()对象

  1. 日期对象 方便处理时间,对时间的计算
  2. 获取年 月 日 …
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);  // 秒
  1. 设置年 月 日 …

            calendar.set(Calendar.YEAR,2024);
            calendar.set(Calendar.MONTH,11);
    
  2. 计算日期

            calendar.add(Calendar.YEAR,1); // 在当前日期对象添加一年
            calendar.add(Calendar.MONTH,-2); // 在当前日期对象减少2个月
    
  3. 转化为时间戳

            calendar.getTimeInMillis();
            calendar.getTime().getTime();
    

Calendar与Date的相互转化

  1. date 转 calendar

            Date date = new Date();
            calendar.setTime(date);
    
  2. calendar转 calendar

            Calendar calendar =Calendar.getInstance();
            Date time = calendar.getTime();
    
  • 28
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值