时间处理相关类(Calendar,Instant,LocalDate,LocalTime,LocalDateTime)

Calendar

  • Calendar的创建

        Calendar calendar=Calendar.getInstance();

  • 获取当前时间的年,月,日,时,分,秒

        System.out.println("year:"+calendar.get(Calendar.YEAR));
        System.out.println("moneth:"+(calendar.get(Calendar.MONTH)+1));// 月份范围0-11,需要加一
        System.out.println("day:"+calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println("hour(12):"+calendar.get(Calendar.HOUR));//十二小时制
        System.out.println("hour(24):"+calendar.get(Calendar.HOUR_OF_DAY));//二十四小时制
        System.out.println("weekday:"+(calendar.get(Calendar.DAY_OF_WEEK)-1));//英语国家从周日开始计算

  •  日期增减

        calendar.add(Calendar.YEAR, 1);//当前时间加一年
//      calendar.add(Calendar.MONTH, 1);//当前时间加一月
//      calendar.add(Calendar.DATE, 1);//当前时间加一天
        System.out.println("year:"+calendar.get(Calendar.YEAR));
        System.out.println("moneth:"+(calendar.get(Calendar.MONTH)+1));// 月份范围0-11,需要加一
        System.out.println("day:"+calendar.get(Calendar.DAY_OF_MONTH)); 

  •  设置日期

        calendar.set(Calendar.YEAR, 2050);
        calendar.set(Calendar.MONTH, 10);//设置为11月
        calendar.set(Calendar.DATE, 5);
        calendar.set(2080, 2,5);//设置日期为2080年3月5日
        System.out.println("year:"+calendar.get(Calendar.YEAR));
        System.out.println("moneth:"+(calendar.get(Calendar.MONTH)+1));// 月份范围0-11,需要加一
        System.out.println("day:"+calendar.get(Calendar.DAY_OF_MONTH));

Instant

        // 当前时间戳
        Instant timestamp = Instant.now();
        System.out.println("当前时间戳:" + timestamp);//当前时间戳:2021-01-17T07:56:34.063Z

        // 从毫秒数来创建时间戳
        Instant specificTime = Instant.ofEpochMilli(timestamp.toEpochMilli());
        System.out.println("从毫秒数来创建时间戳:" + specificTime);//从毫秒数来创建时间戳:2021-01-17T07:56:34.063Z

        Date date = Date.from(timestamp);
        System.out.println("当前时间:" + date);//当前时间:Sun Jan 17 15:56:34 CST 2021

LocalDate

        // 获取当前时间
        LocalDate today = LocalDate.now();
        System.out.println("当前时间:" + today);//当前时间:2021-01-17

        // 用指定时间创建LocalDate 对象
        LocalDate firstDay_2014 = LocalDate.of(2014, Month.JANUARY, 1);
        System.out.println("指定日期:" + firstDay_2014);//指定日期:2014-01-01

        // 更改时区
        LocalDate todayBeijing = LocalDate.now(ZoneId.of("Asia/Shanghai"));
        System.out.println("上海当地时间:" + todayBeijing);//上海当地时间:2021-01-17

        // 从纪元日(01/01/1970)至今第365天
        LocalDate dateFromBase = LocalDate.ofEpochDay(365);
        System.out.println("从纪元日(01/01/1970)至今第365天:" + dateFromBase);//从纪元日(01/01/1970)至今第365天:1971-01-01

        // 2014年的第100天
        LocalDate A100day2014 = LocalDate.ofYearDay(2014, 100);
        System.out.println("2014年的第100天:" + A100day2014);//2014年的第100天:2014-04-10

LocalTime

        // 获取当前时间
        LocalTime time = LocalTime.now();
        System.out.println("当前时间:" + time);//当前时间:16:05:08.494

        // 设置时间
        LocalTime setTime = LocalTime.of(12, 20, 25, 40);
        System.out.println("设置的时间为:" + setTime);//设置的时间为:12:20:25.000000040

        // 上海时间
        LocalTime timeSH = LocalTime.now(ZoneId.of("Asia/Shanghai"));
        System.out.println("上海时间为:" + timeSH);//上海时间为:16:05:08.495

        // 一天第x秒
        LocalTime xSecondTime = LocalTime.ofSecondOfDay(10000);
        System.out.println("一天中的第10000秒:" + xSecondTime);//一天中的第10000秒:02:46:40

LocalDateTime

        // 获取当前时间
        LocalDateTime today = LocalDateTime.now();
        System.out.println("当前时间:" + today);//当前时间:2021-01-17T16:07:23.850

        today = LocalDateTime.of(LocalDate.now(), LocalTime.now());

        // 设置时间
        LocalDateTime setDate = LocalDateTime.of(2014, Month.JANUARY, 1, 10, 10, 30);
        System.out.println("设置的日期为:" + setDate);//设置的日期为:2014-01-01T10:10:30

        // 上海时区
        LocalDateTime todayShangHai = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));
        System.out.println("上海日期为:" + todayShangHai);//上海日期为:2021-01-17T16:07:23.851

        // 从01/01/1970至今第10000秒
        LocalDateTime dateFromBase = LocalDateTime.ofEpochSecond(10000, 0, ZoneOffset.UTC);
        System.out.println("从01/01/1970至今第10000秒" + dateFromBase);//从01/01/1970至今第10000秒1970-01-01T02:46:40

猜你喜欢

转载自blog.csdn.net/SignalFire/article/details/112748269
今日推荐