java-String类5

格式化5格式化5

Jdk8新的时间API

Java 8 以一个新的开始为 Java 创建优秀的 API。新的日期时间API包含

>java.time -包含值对象的基础包

>java.time.chrono - 提供对不同的日历系统的访问

>java.time.format - 格式化和解析时间和日期

>java.time.temporal - 包括底层框架和扩展特性

>java.time.zone -包含时区支持的类

java-String类5_第1张图片

 

 Calendar:日历类

     1 实例化 由于Calendar是一个抽象类,所以我们需要创建其子类的实例。这里我们通过Calender的静态方法 getInsance()即可获取

     

     2常用方法:get(int field) / set(int field,XX) / add(int field,xx) / getTime() / setTime();

     

  • JDK中的API:
  1. LocalDate,LocalTime,LocalDateTime--->类似于Calendar

>实例化:now() / of(xx,xx,xx)

>方法:get() / whitXxx() / plusXxx() / minusXxx()  ...

  1. 瞬时:Instant(时间戳)

Instant: 时间线上的一个瞬时点。 这可能被用来记录应用程序中的事件 时间戳。

  1. 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

  1. java.time.Instant 表示时间线上的一点,而不需要任何上下文信息概念上讲,单的表示自1979年1月1日日时9分8秒 (UTC) 开始的秒数。

实例化:now() / ofEpochMilli()

方法:toEpochMilli();

总代码:

package Test0713;



import java.time.*;

import java.time.format.DateTimeFormatter;

import java.time.temporal.TemporalAccessor;



/**

 * 可变性: 像日期和时间这样的类应该是不可变的。

 * 偏移性: Date中的年份是从1900开始的,而月份都从开始。

 * 格式化:格式只对Date有用,Calendar则不行。

 *

 *

 *  **对日期和时间的操作一直是Java程序员最痛苦的地方之一

 */

public class DateTimeTest2 {

    public static void main(String[] args) {

        //now():获取当前时间/日期

        LocalDate localDate = LocalDate.now();

        LocalTime localTime = LocalTime.now();

        LocalDateTime localDateTime = LocalDateTime.now();



        System.out.println(localDate);

        System.out.println(localTime);

        System.out.println(localDateTime);



        //of():获取指定日期、时间对应的实例

        LocalDate localDate1 = LocalDate.of(2021, 5, 23);

        LocalDateTime localDateTime1 = LocalDateTime.of(2021, 12, 12, 12, 2);



        System.out.println(localDate1);

        System.out.println(localDateTime1);



        //getXXX():

        LocalDateTime localDateTime2 = LocalDateTime.now();

        System.out.println(localDateTime2.getDayOfMonth());



        //体现不可变性

        System.out.println();

        LocalDateTime localDateTime3 = localDateTime2.withDayOfMonth(15);

        System.out.println(localDateTime2);//2023-07-19T22:40:51.556667600

        System.out.println(localDateTime3);//2023-07-15T22:40:51.556667600



        //

        System.out.println();

        LocalDateTime localDateTime4 = localDateTime2.plusDays(5);

        System.out.println(localDateTime2);

        System.out.println(localDateTime4);





        //JDK8的API:Instant

        System.out.println();

        Instant instant = Instant.now();

        System.out.println(instant);//2023-07-19T15:03:09.331471300Z



        OffsetDateTime instant1 = instant.atOffset(ZoneOffset.ofHours(8));

        System.out.println(instant1);



        Instant instant2 = Instant.ofEpochMilli(24123123312L);//

        System.out.println(instant2);  //1970-10-07T04:52:03.312Z



        long milliTime = instant.toEpochMilli(); //获取1970 到该时间的毫秒数

        System.out.println(milliTime);



        //JDK的API:DateTimematter



        //自定义的格式。如:ofpattern("yyyy-MM-dd hh:mm:ss")

        System.out.println();

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");



        //格式化:日期、时间--->字符串

        LocalDateTime localDateTime5 = LocalDateTime.now();

        String strDateTime = dateTimeFormatter.format(localDateTime5);

        System.out.println(strDateTime);



        //解析:字符串--->日期、时间

        TemporalAccessor temporalAccessor = dateTimeFormatter.parse("2023-07-19 23:21:33");

        LocalDateTime localDateTime6 = LocalDateTime.from(temporalAccessor);

        System.out.println(localDateTime6);

        System.out.println(temporalAccessor);



    }



}

java-String类5_第2张图片

 

你可能感兴趣的:(python,开发语言)