2017-07-29 20 views
1

SystemTimeを文字列に変換する方法がないようです。 std::fs::Metadata::created()から返された値が必要なので、SystemTimeを使用する必要があります。SystemTimeを文字列にフォーマットするにはどうすればよいですか?

+0

あなたはどのプログラミング/スクリプト言語を使用していますか? – Kamal

+0

@Kamal質問には[Rust]というタグが付けられています –

+0

[format std :: time output](https://stackoverflow.com/q/38957718/155423) – Shepmaster

答えて

3

フォーマットのサポートにはChronoを使用する必要があります。あなたの代わりにUTCのローカルタイムゾーンで時間を望んでいた場合は、Local代わりのUtc使用

extern crate chrono; 
use chrono::offset::Utc; 
use chrono::DateTime; 
use std::time::SystemTime; 

let system_time = SystemTime::now(); 
let datetime: DateTime<Utc> = system_time.into(); 
println!("{}", datetime.format("%d/%m/%Y %T")); 

:それは今std::time::SystemTimeから直接変換を実装してクロノv0.4.0ので、これは、はるかに簡単です。

フォーマット指定子の一覧については、Chrono documentationを参照してください。

+0

'はstd :: timeからの直接変換を実装していません:: SystemTime'あなたは本当ですか? 'クロノ0.4 'の特徴の1つは' stemTimeとDateTime のタイプは、 'From'(クロノのチェンジログからの引用)のように互いに変換できるようになりました。 – fghj

+0

@fghjありがとうございます。私はチェンジログでそれを気付かなかった。私もそれを試してみましたが、私はそれを「Utc」または「Local」に正しく制限していませんでした。これはずっと簡単なので、私は今答えを更新しました。 –

関連する問題