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 date2Deep Dive (深掘り)
比較する前に、chronoクレートが必要だ。chronoはRustの日付と時間を扱うためのライブラリで、高い柔軟性と正確さを兼ね備えている。さらに、タイムゾーンに基づいた比較も可能になる。
過去、Rust標準のstd::timeモジュールが日付操作を提供していたが、機能が限られており、多くの場合、chronoクレートが代わりに用いられる。
DateTime<Utc>を使用し、二つの日付をUTCで取り扱っている。時差に影響されない厳密な比較が可能。parse()メソッドを使って文字列から日付をパースし、Utc::now()で現在の日付と時間を取得する。そして、比較演算子<を使ってどちらが前かをチェックする。