class Time

def _dump(*args)

def _dump(*args)
  obj = dup
  obj.instance_variable_set('@marshal_with_utc_coercion', utc?)
  obj._original_dump(*args)
end

def _load(marshaled_time)

def _load(marshaled_time)
  time = _original_load(marshaled_time)
  time.instance_eval do
    if defined?(@marshal_with_utc_coercion)
      val = remove_instance_variable("@marshal_with_utc_coercion")
    end
    val ? utc : self
  end
end

def as_json(options = nil)

# => "2005/02/01 15:15:10 +0000"
Time.utc(2005,2,1,15,15,10).to_json
# With ActiveSupport::JSON::Encoding.use_standard_json_time_format = false

# => "2005-02-01T15:15:10Z"
Time.utc(2005,2,1,15,15,10).to_json
# With ActiveSupport::JSON::Encoding.use_standard_json_time_format = true

==== Examples

ISO 8601 format is used if ActiveSupport::JSON::Encoding.use_standard_json_time_format is set.

Coerces the time to a string for JSON encoding.
def as_json(options = nil)
  if ActiveSupport::JSON::Encoding.use_standard_json_time_format
    xmlschema
  else
    %(#{strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)})
  end
end