fc2ブログ

2024.11 «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - - » 2025.01
TOP > Rails 2.1・その12(DBに登録してあるUTC日付データを簡単変換)

 ← Rails 2.1・その13(HTTP_なんとか、を簡単に取得) | TOP | Rails 2.1・その11(created_at updated_at カラムを自由自在)

Rails 2.1・その12(DBに登録してあるUTC日付データを簡単変換) 

2008年06月08日 ()
Rails2.1で日時(timestamp)カラムをテーブルに作ってセーブするとUTC時間で記録されます。

それは、なぜかというと

config/environment.rb ファイルに

config.time_zone = 'UTC'



と書いてあるからです。

今回は、この 'UTC' という値がミソになります。

これを 'Tokyo' に変えても、DB にはやっぱりUTC時間で記録されます。

じゃあ何が違うんですか?っていうと、モデルを使用して値を取ってくると設定したタイムゾーンでの値となります。

例えば、
UTC的に言うと 2008/06/08 02:52:00 だったら

タイムゾーンがUTCの場合は
 Sun, 08 Jun 2008 02:52:00 UTC +00:00
を取得し、
タイムゾーンがTokyoの場合は
 Sun, 08 Jun 2008 11:52:00 JST +09:00
を取得します。

ところで、config/environment.rb ファイルではなく、たとえばコントローラでタイムゾーンを改めて設定したくなっちゃったー、という時は、

Time.zone = 'Tokyo'



という指定の仕方もできます。ruby にそもそも備わっている Time.now.zone と混乱しないように注意しなくちゃなりませんね。


ところで、このタイムゾーンの名前ですが、

rake time:zones:all


で全て参照できます。自分のローカルのタイムゾーンは、

rake time:zones:local


で参照できます。


最後に、もう国際化とか関係ないからDBにもとにかくUTCじゃなくて日本時間(自分のローカル時間)を記録させてくれ、という場合は、
config/environment.rb の先ほどの行をコメントアウトしましょう。

# config.time_zone = 'UTC'




【広告】

[2008.06.08(Sun) 12:08] [2.1]その他Trackback(0) | Comments(1)
↑TOPへ


COMMENT

感謝 by そう
ありがとう!

コメントを閉じる▲
 ← Rails 2.1・その13(HTTP_なんとか、を簡単に取得) | TOP | Rails 2.1・その11(created_at updated_at カラムを自由自在)

COMMENT

ありがとう!
[ 2010.03.23(Tue) 02:48] URL | そう #- | EDIT |

COMMENT POST















管理者にだけ表示

 ← Rails 2.1・その13(HTTP_なんとか、を簡単に取得) | TOP | Rails 2.1・その11(created_at updated_at カラムを自由自在)