Java-时间获取,格式 转换和解析

常用的有关时间的类有Date、LocalDateTime、LocalDate、LocalTime、Instant、Calendar、SimpleDateFormat

获取

以下是获取各类的对象方式和输出,可以根据需要获取相应的对象。Date类代表当前所在系统的日期时间信息;Instant、LocaData*是JDK8新增的类,Instant是Date的升级版; 需要特别注意的是,Calendar是可变日期对象,一旦修改后对其对象本身表示的时间也会产生变化

//获取Date对象并输出
        Date date = new Date();
        System.out.println("date =" + date);
        //获取LocalDate并输出
        LocalDate localDate = LocalDate.now();
        System.out.println("localDate =" +  localDate);
        //获取LocalTime并输出
        LocalTime localTime = LocalTime.now();
        System.out.println("LocalTime.now = " + localTime);
        //获取LocalDateTime并输出
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println("localDateTime = " + localDateTime);
        //获取Instant并输出
        Instant instant = Instant.now();
        System.out.println("instant = " + instant);
        //获取系统此刻日历对象
        Calendar calendar = Calendar.getInstance();
        System.out.println("calendar = " + calendar);

SimpleDateFormat - 格式转化和解析

格式化和解析都需要指定格式,具体书写可参考文档

需要特别注意的是:解析时设定的格式要与字符串一致!!!!

格式化

格式化可以选择格式日期对象,或者时间的毫秒值

/*
            格式化时间:
                --将日期时间对象或者时间毫秒值格式化成指定格式
         */

        //1.获取日期对象
        Date date = new Date();

        //2.指定格式化格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE a");

        //3.1 格式化日期对象
        String stringDate = sdf.format(date);
        System.out.println("格式化日期对象结果: " + stringDate);

        //3.格式化时间毫秒值
        long time = date.getTime();
        stringDate = sdf.format(time);
        System.out.println("格式化时间毫秒值结果: " + stringDate);

解析

/*
           解析字符串时间至时间对象
              注意字符串和解析格式需要匹配!!!!
         */

        //1.指定格式化格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

        //2.将参照 字符串时间 化为 时间对象
        String dateStr = "2024年06月09日 15:12:17";
        Date date = sdf.parse(dateStr);
        System.out.println( "字符串时间转时间对象:" + date);

常用API

Date

Calendar

SimpleDateFormat

经验分享 程序员 微信小程序 职场和发展