2016-08-15 8 views
4

現在の時刻を特定の形式で表示したいとします。フォーマットstd :: time出力

time crateは、そのthe GitHub repoで廃止予定のフラグが設定されています。

std::timeを使用してこの正確な形式time::now().strftime("%Y-%m-%d][%H:%M:%S").unwrap()を使用しますが、strftimeを持っていないようです。

答えて

3

Instant::nowSystemTime::nowの2つの方法があります(現在)。

Instantは言う:

単調に増加するクロックの測定。不透明で便利なのはDurationです。

SystemTimeは言う:

ファイルシステムまたは他のプロセスのような外部のエンティティに話のための有用なシステムクロックの測定、。

これらはどちらも人間に示すことは本当に適切ではありません。時間はハードのであり、のフォーマットはです。時間はさらに複雑です。これは標準ライブラリの一部ではないというのは本当に良いことです。そうでなければ、改善できない固定APIがあります。

他のところで述べたように、chronoの相続人はからtimeまでのクレートを使用することをお勧めします。

5

あなたは同じ結果を達成するためにクレートchronoを使用することができます。

extern crate chrono; 

use chrono::Local; 

fn main() { 
    let date = Local::now(); 
    println!("{}", date.format("%Y-%m-%d][%H:%M:%S")); 
} 

編集:

時間クレートは廃止されていません:それはメンテナンスされていないです。

さらに、標準ライブラリのみを使用して時間をフォーマットすることはできません。

+1

'std :: time :: now()'の結果をChrono互換型に変換する方法はありますか? OPは 'std :: time'から何かをフォーマットする方法を尋ねました。現在の時刻を印刷する方法ではありません。 – Shepmaster

+0

プラスクレートクロノはクレートタイム用のラッパーです。 – Bl4ckb0ne

+1

@ Bl4ckb0neクロノクレートは12日前に更新されました。私はそれが非難されているとは思わない。 – antoyo

関連する問題