Rust:
日付を文字列に変換する
How to: (方法)
use chrono::{DateTime, Utc, Local};
fn main() {
// UTCで現在の日時を取得して文字列に変換
let now_utc: DateTime<Utc> = Utc::now();
println!("{}", now_utc.format("%Y-%m-%d %H:%M:%S").to_string());
// ローカルタイムゾーンで現在の日時を取得して文字列に変換
let now_local: DateTime<Local> = Local::now();
println!("{}", now_local.format("%Y-%m-%d %H:%M:%S").to_string());
}サンプル出力:
2023-03-14 12:34:56
2023-03-14 21:34:56 // ローカルタイムゾーンに依存Deep Dive (深掘り)
Rustで日付を文字列に変換するとき、chronoクレートが一般的です。これはRustが標準で提供している日時ライブラリよりも柔軟性とパワーがあります。chronoは.NETのDateTimeやJavaのSimpleDateFormatに触発されました。
選択肢として、timeクレートもありますが、機能はchronoの方が豊富です。したがって、複雑な日付処理が必要な場合はchronoが良いでしょう。
変換の実装時、formatメソッドを使っています。このメソッドでは、フィールドに対応する形式指定子を用いて、出力のフォーマットを細かく指定できます。例えば%Yは4桁の年を、%mは月を2桁で表します。これはC言語のstrftime関数からの影響を受けています。