>  기사  >  Java  >  Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하여 날짜와 시간을 구문 분석하고 형식을 지정합니다.

Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하여 날짜와 시간을 구문 분석하고 형식을 지정합니다.

PHPz
PHPz원래의
2023-07-30 12:41:13954검색

Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하여 날짜와 시간을 구문 분석하고 형식을 지정하세요.

시간과 날짜가 최신 애플리케이션에서 널리 사용됨에 따라 날짜와 시간을 정확하고 편리하게 처리하는 것이 점점 더 중요해지고 있습니다. 이러한 요구 사항을 충족하기 위해 Java 11에서는 날짜와 시간의 구문 분석 및 형식 지정을 더욱 유연하고 쉽게 만드는 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 도입했습니다.

DateTimeFormatter 클래스는 날짜와 시간의 형식을 지정하고 구문 분석하는 강력한 도구입니다. 이는 사전 정의된 형식 세트를 제공하며 개발자가 형식을 사용자 정의할 수도 있습니다. 동시에 DateTimeFormatter는 다양한 지역과 요구 사항의 날짜 및 시간 형식을 충족하기 위해 현지화 및 시간대 처리도 지원합니다. 다음은 일반적인 DateTimeFormatter의 몇 가지 예입니다.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateTimeFormatterExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();

        // 格式化为字符串
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDateTime = dateTime.format(formatter);
        System.out.println("Formatted Date and Time: " + formattedDateTime);

        // 解析字符串为日期和时间
        String dateTimeString = "2022-01-01 12:00:00";
        LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
        System.out.println("Parsed Date and Time: " + parsedDateTime);
    }
}

위의 예에서는 먼저 날짜 및 시간 형식을 지정하기 위해 DateTimeFormatter 개체를 만듭니다. 형식 지정 프로세스 중에 yyyy-MM-dd HH:mm:ss 형식 패턴을 사용하여 현재 날짜와 시간을 문자열 형식으로 지정합니다. 그런 다음 LocalDateTimeformat() 메서드를 사용하여 날짜 및 시간 개체의 형식을 문자열로 지정하고 인쇄합니다. yyyy-MM-dd HH:mm:ss的格式模式,将当前的日期和时间格式化为字符串。然后,我们使用LocalDateTimeformat()方法,将日期和时间对象格式化为字符串,并将其打印出来。

另外,我们还可以通过DateTimeFormatterparse()方法,将字符串解析为日期和时间对象。在这个示例中,我们使用相同的格式模式,将一个日期和时间字符串解析为LocalDateTime对象,并将其打印出来。

除了使用预定义的格式模式外,我们还可以使用DateTimeFormatter的其他方法来实现更加细粒度的日期和时间格式化。例如,我们可以使用DateTimeFormatterBuilder类来构建自定义的格式:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;

public class CustomDateTimeFormatterExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();

        DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                .appendLiteral("Today is ")
                .appendValue(DateTimeFormatter.ISO_LOCAL_DATE)
                .appendLiteral(".")
                .toFormatter();
        String formattedDate = date.format(formatter);
        System.out.println(formattedDate);
    }
}

在上面的示例中,我们使用DateTimeFormatterBuilder类来创建一个自定义的日期格式化器。在这个格式化器中,我们首先使用appendLiteral()方法添加了一个字面量字符串"Today is ",然后使用appendValue()方法添加了日期,最后再添加了一个字面量字符串"。"。通过使用这些方法,我们可以构建出符合自己需求的日期格式。

除了DateTimeFormatter类外,Java 11还引入了TemporalAccessor接口,该接口可以用作日期和时间对象的通用访问器。它提供了一组通用的方法,可以通过具体的实现类如LocalDateTime、LocalDate等来访问日期和时间对象的各个部分。以下是TemporalAccessor的一些示例用法:

import java.time.LocalDateTime;
import java.time.temporal.ChronoField;

public class TemporalAccessorExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();

        int year = dateTime.get(ChronoField.YEAR);
        int month = dateTime.get(ChronoField.MONTH_OF_YEAR);
        int day = dateTime.get(ChronoField.DAY_OF_MONTH);
        int hour = dateTime.get(ChronoField.HOUR_OF_DAY);
        int minute = dateTime.get(ChronoField.MINUTE_OF_HOUR);
        int second = dateTime.get(ChronoField.SECOND_OF_MINUTE);

        System.out.println("Current Date: " + year + "-" + month + "-" + day);
        System.out.println("Current Time: " + hour + ":" + minute + ":" + second);
    }
}

在上面的示例中,我们使用LocalDateTime类创建了一个当前的日期和时间对象。然后,我们使用get()方法和ChronoField

또한 DateTimeFormatterparse() 메서드를 통해 문자열을 날짜 및 시간 개체로 구문 분석할 수도 있습니다. 이 예에서는 동일한 형식 지정 패턴을 사용하여 날짜 및 시간 문자열을 LocalDateTime 개체로 구문 분석하고 이를 인쇄합니다.

미리 정의된 형식 모드를 사용하는 것 외에도 DateTimeFormatter의 다른 방법을 사용하여 더욱 세분화된 날짜 및 시간 형식을 구현할 수도 있습니다. 예를 들어 DateTimeFormatterBuilder 클래스를 사용하여 사용자 정의 형식을 만들 수 있습니다. 🎜rrreee🎜 위 예에서는 DateTimeFormatterBuilder 클래스를 사용하여 사용자 정의 날짜 포맷터 장치를 만듭니다. 이 포맷터에서는 먼저 appendLiteral() 메서드를 사용하여 리터럴 문자열 "Today is"를 추가한 다음 appendValue() 메서드를 사용하여 날짜를 추가했습니다. 리터럴 문자열 "."이 추가됩니다. 이러한 방법을 사용하면 필요에 맞는 날짜 형식을 구성할 수 있습니다. 🎜🎜DateTimeFormatter 클래스 외에도 Java 11에는 날짜 및 시간 객체에 대한 범용 접근자로 사용할 수 있는 TemporalAccessor 인터페이스도 도입되었습니다. LocalDateTime, LocalDate 등과 같은 특정 구현 클래스를 통해 날짜 및 시간 개체의 다양한 부분에 액세스할 수 있는 공통 메서드 집합을 제공합니다. 다음은 TemporalAccessor의 몇 가지 사용 예입니다. 🎜rrreee🎜 위 예에서는 LocalDateTime 클래스를 사용하여 현재 날짜 및 시간 개체를 만들었습니다. 그런 다음 get() 메서드와 ChronoField 열거를 사용하여 연도, 월, 일, 시, 분, 시간과 같은 날짜와 시간의 다양한 부분을 가져옵니다. 두번째. 마지막으로 조각들을 합쳐서 인쇄합니다. 🎜🎜Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하면 날짜와 시간을 정확하고 편리하게 처리할 수 있습니다. 날짜 및 시간 개체의 형식을 문자열로 지정하거나 문자열을 날짜 및 시간 개체로 구문 분석하는 경우 이러한 새로운 유틸리티 클래스는 날짜 및 시간 처리를 더욱 효율적이고 안정적으로 만드는 유연하고 사용하기 쉬운 방법을 제공합니다. 개발자는 다양한 날짜 및 시간 작업을 처리하기 위해 필요에 따라 적절한 도구를 선택할 수 있습니다. 🎜

위 내용은 Java 11의 새로운 DateTimeFormatter 클래스와 TemporalAccessor 인터페이스를 사용하여 날짜와 시간을 구문 분석하고 형식을 지정합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.