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()
で現在の日付と時間を取得する。そして、比較演算子<
を使ってどちらが前かをチェックする。