Ruby NT タイムエポック(Windows時間)を年月日月時に変換する

  • 作成日 2021.03.25
  • 更新日 2022.08.09
  • Ruby
Ruby NT タイムエポック(Windows時間)を年月日月時に変換する

RubyでNT タイムエポック(Windows時間)を年月日月時に変換するまでの手順を記述してます。Rubyのバージョンは3.0.0となります。

環境

  • OS CentOS 7.9.2009 (Core)
  • Ruby 3.0.0

NT タイムエポック(Windows時間)とは

「1970年1月1日0時0分0秒」からの経過した秒数で表示される「unixtime」とは違い、
「1601年1月1日0時0分」からの100ナノ秒で表されます。

年月日月時に変換

年月日月時形式に変換するには、一度「unixtime」に変換してから、
「Time.at」を使用してフォーマットをしてすれば可能です。

windowsTime = 132609410120878582

unixTime = windowsTime / 10000000 - 11644473600

p Time.at(unixTime).strftime("%Y/%m/%d %H:%M:%S")
# "2021/03/23 11:43:32"