現在日時を取得する現在日時を取得する。Chronoクレートが必要になるので、Cargo.tomlに依存関係を追加する。 [dependencies] chrono = "0.4" 現在日時はLocal::now()で取得できる。now()からはDateTimeが得られるので、format()で日時をフォーマットできる。 use chrono::Local; fn main() { // 現在日時を取得する。 let dt = Local::now(); println!("{}", dt); println!("{}", dt.format("%Y年%m月%d日 %H:%M:%S")); } 2021-01-19 19:03:22.798315700 +09:00 2021年01月19日 19:03:22 ローカル時刻だけでなく、UTCもUtc::now()から取得できる。 use chrono::Utc; fn main() { // 現在日時(UTC)を取得する。 let dt = Utc::now(); println!("{}", dt); println!("{}", dt.format("%Y年%m月%d日 %H:%M:%S")); } 2021-01-19 10:04:22.979478300 UTC 2021年01月19日 10:04:22 UNIX時刻で良いならSystemTime::now()も使える。 use std::time::SystemTime; fn main() { // UNIX時刻を取得する。 println!("{:?}", SystemTime::now()); } SystemTime { tv_sec: 1611050766, tv_nsec: 338082100 } UNIXエポックからの経過秒数を取得したいなら、このようになるだろう。因みに、UNIX時刻はうるう秒を考慮していない(1970年1月1日 00:00:00から実際に経過した秒数とUNIX時刻は一致しない)。 println!("UNIX時刻: {}秒", SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).unwrap().as_secs()); UNIX時刻: 1611050766秒 先述のDateTimeからもtimestamp()でUNIX時刻を得ることができる。 // ローカル時刻からUNIX時刻を取得する。 println!("From Local: {}秒", Local::now().timestamp()); // UTCからUNIX時刻を取得する。 println!("From Utc: {}秒", Utc::now().timestamp()); From Local: 1611050766秒 From Utc: 1611050766秒 (2021/01/20)
Copyright© 2004-2021 モバイル開発系(K) All rights reserved.
[Home]
|