Rails3.2を使用しています。タイムゾーンをGMT+05:30に設定したい。しかし、次のコマンドは私にエラーを与えます:
Time.zone = GMT+05:30
SyntaxError: (irb):5: syntax error, unexpected ':', expecting $end
Rails3.2を使用しています。タイムゾーンをGMT+05:30に設定したい。しかし、次のコマンドは私にエラーを与えます:
Time.zone = GMT+05:30
SyntaxError: (irb):5: syntax error, unexpected ':', expecting $end
このような文字列をTimeZoneに変換するには、最初にそれをオフセットに変換する必要があります。これは、少しの正規表現で実行できます。
time_zone_string = "GMT+5:30"
offset = time_zone_string.match(/GMT(\+|-)(\d+):(\d+)/) { "#{$1}1".to_i * ($2.to_i.hours + $3.to_i.minutes) }
time_zone = ActiveSupport::TimeZone.new(offset)
time_zone # (GMT+5:30) Chennai
オフセットではなく、タイムゾーンの名前を取得します。
>> Time.zone = 'New Delhi'
>> Time.now # Mon, 25 Feb 2013 18:04:43 IST +05:30
オフセットがわかっている場合は、
Time.zone = 19600
レールヘルパーの一部を使用することもできます
Time.zone = 5.hours + 30.minutes
夏時間に関してこれがどうなるかわかりません