Rustで日付と時刻を変換する方法

科技瘦

time convert
date tool
AMAMAMAM-09-17
Rustで日付と時刻を変換する方法

Rustで日付と時刻を変換する方法

chronoクレートの基本

Rustで日付と時刻を扱うにはchronoクレートが最適です。まずCargo.tomlに追加します:

[dependencies]
chrono = "0.4"

基本的な使い方:

use chrono::{Local, Utc, DateTime};

// 現在時刻の取得(Rust で現在時刻を取得)
let local_now: DateTime<Local> = Local::now();
let utc_now: DateTime<Utc> = Utc::now();

日付と文字列の相互変換

Rust で日付を文字列に変換する方法:

use chrono::NaiveDate;

// 文字列から日付へ(Rust 日時パース エラー対処)
let date = NaiveDate::parse_from_str("2023-01-15", "%Y-%m-%d")?;

// 日付から文字列へ(Rust カスタム日付フォーマット)
let formatted = date.format("%Y年%m月%d日").to_string();

UNIXタイムスタンプの扱い

Rust でUNIXタイムスタンプを日付に変換:

use chrono::{DateTime, Utc, NaiveDateTime};

// UNIXタイムスタンプ → DateTime
let dt = DateTime::<Utc>::from_utc(
    NaiveDateTime::from_timestamp(1673769600, 0),
    Utc
);

// DateTime → UNIXタイムスタンプ
let timestamp = dt.timestamp();

日付計算

Rust 日付計算 サンプルコード:

use chrono::{Duration, NaiveDate};

let date = NaiveDate::from_ymd(2023, 1, 15);
let week_later = date + Duration::days(7);
let days_diff = week_later.signed_duration_since(date).num_days();

タイムゾーン変換

Rust タイムゾーン変換の基本:

use chrono::{DateTime, Utc, Local};

let utc_time: DateTime<Utc> = Utc::now();
let local_time: DateTime<Local> = DateTime::from(utc_time);

chronoクレートを使えば、日付と時刻の操作が簡単になります。フォーマット指定やタイムゾーン変換も直感的に記述可能です。