前提・実現したいこと
日付の処理を行っていたら、
出力してみて、日付のみとUTCが付くものが出てきて、この違いは何なのか気になりました。
ご教示お願いします。
試したこと
第2土曜日を取得してみて、そこから、次の週の月曜日を取得するのに、
2通りのやり方で試したところ、出力結果が変わったので、この違いは何なのか、どうして、この違いが生じてしまうのかが気になりました。
ruby
1# 第2土曜 2puts sat2 3# 第2土曜の後の月曜日 4puts sat2.next_week(:monday) 5puts sat2.since(2.days)
出力結果。
2019-12-14 2019-12-16 2019-12-16 00:00:00 UTC
質問1。
puts sat2 #2019-12-14 puts sat2.next_week(:monday) #2019-12-14
時間帯が出力されなかった上記2つは、ロケールや時間を持っていない日付という認識で合っていますか?
(UTCや日本時間の+09:00を持っていない、時間を持っていない日にちのみの日付という認識で合っていますか?)
それとも、タイムゾーンが設定されている場合は、どうすれば上記の日付でタイムゾーンを確認することができますか?
質問2。
puts sat2.next_week(:monday) #2019-12-14 puts sat2.since(2.days) #2019-12-16 00:00:00 UTC
上記の結果より、上記の日付は同じ第3月曜日を指しているものの、時間帯の情報が異なる為、異なる日付ですか?
と思ったのですが、下記を試したら、trueになったので、よくわからなくなってしまいました。
a = sat2.next_week(:monday) b = sat2.since(2.days) puts a==b #true
質問3。
基本的には、日本時間で扱いたいのですが、
sat2.since(2.days)
だとUTCとなってしまうので、第2土曜日から2日後の月曜日を日本時間で取得するにはどうすればよいでしょうか?
それとも第2土曜日を取得する時点でUTCになってしまっているのでしょうか?
第2土曜日は下記のような式で取得しています。
Date.new(now.year, now.month, day)
追記質問④
puts Time.parse("2020/04/12 23:57:00");
上記だと日本時間で出力されます。
UTCで得られるものと、日本時間で得られるもの、どういう切り分けでこの差異は出てくるのでしょうか?
2020-04-12 23:57:00 +0900
回答1件
あなたの回答
tips
プレビュー