回答編集履歴
1
s/Ralis/Rails/g
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
`Time.now`はRuby組み込みのメソッドですが、`Time.current`はRails独自のメソッドです。まず、その点に注意してください。
|
2
2
|
|
3
|
-
RubyのTimeはタイムゾーンが保持されています。そして、`Time.now`は**システムのタイムゾーン**を使うという仕様になっています。しかし、実際に
|
3
|
+
RubyのTimeはタイムゾーンが保持されています。そして、`Time.now`は**システムのタイムゾーン**を使うという仕様になっています。しかし、実際にRailsで使うときはシステムのタイムゾーンではまずい場合があります。アメリカに置いているサーバで日本向けのサービスをする場合、タイムゾーンは日本標準時(JST)の方が都合が良いでしょう。そこでRailsではアプリ毎にタイムゾーンを指定して現在時刻を取得できるように`Time.current`を別に用意したのです。そう、`Time.current`は**config.time_zoneで設定したタイムゾーン**になるという仕様にしたのです。
|
4
4
|
|
5
5
|
なお、上の話はDateでも同じ事が言えます。また、Time.currentは厳密にはTimeオブジェクトでは無く、TimeWithZoneです。ほか、細かい違い等については下記記事が参考になると思います。
|
6
6
|
|