ume

ruby で時刻を扱ってみる

前書き

時間の取得が苦手なので復習+私のように混乱してしまうかたのために記事にします。

現在日時の表示

Time.nowかTime.newを使うどちらも同じ意味 Time.nowの方がわかりやすいのでこちらが好まれる傾向があります。

今現在9月22日(木曜日)16:39分

Time.nowを入力してファイルを読み込むと
⇨2022-09-22 07:40:04 +0000

あれ?時間おかしくない? 実はこの時間はUTCと言われる世界基準の今の時間が表示されている。 日本は2022-09-22 07:40:04の時間から9時間進んでいるので 9時間足すとおおよそ今現在9月22日(木曜日)16:39分今の時間になる

⇨日本の時間で今の時間を表示する方法は

time = Time.now
 japanTime = Time.at(①基準の時間, in: "②基準の時間から経過させたい時間")

を使うと①の時間から②の時間分を足して表示してくれる。 つまり今の時間(日本の時間)はUTCの時間から9時間進んでいるので公式に当てはめると

japanTime = Time.at(time, in: "+09:00")
puts japanTime

基準の時間がUTCでそこから9時間を足すと日本の時間になる。