Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

Windows で Rust の SystemTime の interval のやつとかのメモ

Rust のシステム時刻についてメモ
fn main() {
    let now = std::time::SystemTime::now();
    println!("now: {:?}", now); // => now: SystemTime { intervals: 132966473691539291 }
}
  • Windows で std::time::SystemTime::now() すると、SystemTime インスタンスが得られる
  • SystemTime インスタンスを {:?} で見ると、intervals という値だけ見せてくれる
  • intervals は 132966473691539291 のような巨大な数字
  • 中を見ると、Win32 API の GetSystemTimePreciseAsFileTime を使ってるっぽい?
  • つまり 1601 年 1 月 1 日 0 時 0 分(UTC) からの経過時間を 100 ナノ秒単位で保持してるっぽい?
  • 132966473691539291 は、13296647369(秒) 153(ミリ秒) 929(マイクロ秒) 1 (x 100 =ナノ秒) ということ?
  • 13296647369(秒) は、365 日で割ると、421.6 年だから、1601 年と足すと 2022 年 7 月 で大体現在であってそう。多い分はうるう年の分かな多分
SystemTime についてメモ