Time.parseは、タイムゾーンを持たないTimeオブジェクトを返します。タイムゾーン情報を保持したいと思います。次のコードよりもこれを行うためのより良い方法はありますか?
def parse_with_timezone( string_input)
/(.*)([+-]\d\d):?(\d\d)$/.match( string_input) do |match|
tz = ActiveSupport::TimeZone[match[2].to_i.hours + match[3].to_i.minutes]
tz.parse( match[1])
end
end
入力は「2012-12-25T00:00:00 + 09:00」のような文字列です。この関数は、TimeWithZoneオブジェクトを出力します。