現在の時刻を特定の形式で表示したいとします。フォーマットstd :: time出力
time crateは、そのthe GitHub repoで廃止予定のフラグが設定されています。
std::time
を使用してこの正確な形式time::now().strftime("%Y-%m-%d][%H:%M:%S").unwrap()
を使用しますが、strftime
を持っていないようです。
現在の時刻を特定の形式で表示したいとします。フォーマットstd :: time出力
time crateは、そのthe GitHub repoで廃止予定のフラグが設定されています。
std::time
を使用してこの正確な形式time::now().strftime("%Y-%m-%d][%H:%M:%S").unwrap()
を使用しますが、strftime
を持っていないようです。
Instant::now
とSystemTime::now
の2つの方法があります(現在)。
Instant
は言う:
単調に増加するクロックの測定。不透明で便利なのは
Duration
です。
SystemTime
は言う:
ファイルシステムまたは他のプロセスのような外部のエンティティに話のための有用なシステムクロックの測定、。
これらはどちらも人間に示すことは本当に適切ではありません。時間はハードのであり、のフォーマットはです。時間はさらに複雑です。これは標準ライブラリの一部ではないというのは本当に良いことです。そうでなければ、改善できない固定APIがあります。
他のところで述べたように、chrono、の相続人はからtime
までのクレートを使用することをお勧めします。
あなたは同じ結果を達成するためにクレートchrono
を使用することができます。
extern crate chrono;
use chrono::Local;
fn main() {
let date = Local::now();
println!("{}", date.format("%Y-%m-%d][%H:%M:%S"));
}
編集:
時間クレートは廃止されていません:それはメンテナンスされていないです。
さらに、標準ライブラリのみを使用して時間をフォーマットすることはできません。
'std :: time :: now()'の結果をChrono互換型に変換する方法はありますか? OPは 'std :: time'から何かをフォーマットする方法を尋ねました。現在の時刻を印刷する方法ではありません。 – Shepmaster
プラスクレートクロノはクレートタイム用のラッパーです。 – Bl4ckb0ne
@ Bl4ckb0neクロノクレートは12日前に更新されました。私はそれが非難されているとは思わない。 – antoyo