Java 11 の新しい DateTimeFormatter クラスと TemporalAccessor インターフェイスを使用して日付と時刻を解析およびフォーマットする

PHPz
リリース: 2023-07-30 12:41:13
オリジナル
969 人が閲覧しました

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() メソッドを使用して、日付と時刻のオブジェクトを文字列にフォーマットし、出力します。

さらに、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 列挙を使用して、年、月、日、時、分、秒などの日付と時刻のさまざまな部分を取得します。最後に、各部分を結合して印刷します。

Java 11 の新しい DateTimeFormatter クラスと TemporalAccessor インターフェイスを使用すると、日付と時刻を正確かつ便利に処理できます。日付と時刻のオブジェクトを文字列にフォーマットする場合でも、文字列を解析して日付と時刻のオブジェクトにする場合でも、これらの新しいユーティリティ クラスは、日付と時刻の処理をより効率的かつ信頼性の高いものにする、柔軟で使いやすいメソッドを提供します。開発者は、さまざまな日付と時刻の操作を処理するニーズに基づいて、適切なツールを選択できます。

以上がJava 11 の新しい DateTimeFormatter クラスと TemporalAccessor インターフェイスを使用して日付と時刻を解析およびフォーマットするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート