Timeオブジェクトの起算時からの経過秒数を取得する

Time クラスのオブジェクトは内部的には起算時である 1970 年 1 月 1 日午前 0 時からの経過秒数を保持しています。この値を必要に応じて年月日や時分秒などに換算して利用するのですが経過秒数そのものを取得することもできます。ここでは Ruby で Time オブジェクトが保持している起算時からの経過秒数を取得する方法について解説します。

(2022 年 10 月 13 日公開 / 2022 年 10 月 26 日更新)

起算時からの経過秒数を取得する

Time クラスのオブジェクトは保持している起算時からの経過秒数を取得する方法です。 Time クラスで用意されている to_f メソッドなどを使います。

to_f
to_i
tv_sec

to_f メソッドは起算時からの経過秒数を浮動小数点数で取得します。このメソッドの場合は 1 秒未満の値も取得できます。

to_i メソッド及び tv_sec メソッドの場合は起算時からの経過秒数を整数で取得します。このメソッドの場合は最小単位が秒となります。

例えば次のように使用します。

t = Time.now

puts(t.to_f)  # 1666781162.4134245
puts(t.to_i)  # 1666781162
サンプルコード

では簡単なサンプルで試してみます。

# encoding: UTF-8

t = Time.now
puts(t)
puts("to_f = " + t.to_f.to_s)
puts("to_i = " + t.to_i.to_s)
puts("tv_sec = " + t.tv_sec.to_s)

実行結果は次のようになります。

経過秒数を取得する

-- --

Ruby で Time オブジェクトが保持している起算時からの経過秒数を取得する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。