日付を比較する

Rust:
日付を比較する

How to: (方法)

use chrono::{DateTime, Utc};

fn main() {
    // 2つの日付をUTCで生成
    let date1: DateTime<Utc> = "2023-04-01T12:00:00Z".parse().unwrap();
    let date2: DateTime<Utc> = Utc::now();

    // date1がdate2よりも前かどうかをチェック
    if date1 < date2 {
        println!("date1 is earlier than date2");
    } else {
        println!("date1 is not earlier than date2");
    }
}

実行結果には以下のような出力が含まれます(日付の値による):

date1 is earlier than date2

Deep Dive (深掘り)

比較する前に、chronoクレートが必要だ。chronoはRustの日付と時間を扱うためのライブラリで、高い柔軟性と正確さを兼ね備えている。さらに、タイムゾーンに基づいた比較も可能になる。

過去、Rust標準のstd::timeモジュールが日付操作を提供していたが、機能が限られており、多くの場合、chronoクレートが代わりに用いられる。

DateTime<Utc>を使用し、二つの日付をUTCで取り扱っている。時差に影響されない厳密な比較が可能。parse()メソッドを使って文字列から日付をパースし、Utc::now()で現在の日付と時間を取得する。そして、比較演算子<を使ってどちらが前かをチェックする。

See Also (参照)