teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

s/Ralis/Rails/g

2016/04/29 07:14

投稿

raccy
raccy

スコア21784

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  `Time.now`はRuby組み込みのメソッドですが、`Time.current`はRails独自のメソッドです。まず、その点に注意してください。
2
2
 
3
- RubyのTimeはタイムゾーンが保持されています。そして、`Time.now`は**システムのタイムゾーン**を使うという仕様になっています。しかし、実際にRalisで使うときはシステムのタイムゾーンではまずい場合があります。アメリカに置いているサーバで日本向けのサービスをする場合、タイムゾーンは日本標準時(JST)の方が都合が良いでしょう。そこでRalisではアプリ毎にタイムゾーンを指定して現在時刻を取得できるように`Time.current`を別に用意したのです。そう、`Time.current`は**config.time_zoneで設定したタイムゾーン**になるという仕様にしたのです。
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