AWS Record HashModel
★ブログ移行のお知らせ
サイトを移行しました。以下をクリックください。
きよしの倶楽部 – 生活を潤わす情報を発信中。GTDを得意としてます。
ーーー
AWS::Record::HashModel。便利ですね。
ただ、保存する時に一部、UTCでつっこまれることがあります。
ひとつひとつ、きっちり対応しても良いのですが、面倒なのでtimezoneがUTCの時はattributeで強制的にJSTにして、DBはいつでもJSTで保存できるようにしました。
以下、aws-sdk-XXX/lib/aws/record/attributes.rb
class DateTimeAttr < BaseAttr def self.type_cast raw_value, options = {} case raw_value when nil then nil when '' then nil ##ここをコメントアウト #when DateTime then raw_value ##以下のようにカスタマイズ when DateTime then if raw_value.zone == "+00:00" raw_value = raw_value - Rational(9, 24) raw_value.new_offset(Rational(9,24)) else raw_value end when Integer then begin DateTime.parse(Time.at(raw_value).to_s) # timestamp rescue nil end else begin DateTime.parse(raw_value.to_s) # Time, Date or String rescue nil end end end
ま、そのうち本家の方がきっちり対応してくれるでしょう。
それまでのつなぎということで。