prelude: |
  # frozen_string_literal
  unless Time.method_defined?(:xmlschema)
    class Time
      def xmlschema(fraction_digits=0)
        fraction_digits = fraction_digits.to_i
        s = strftime("%FT%T")
        if fraction_digits > 0
          s << strftime(".%#{fraction_digits}N")
        end
        s << (utc? ? 'Z' : strftime("%:z"))
      end
    end
  end
  time = Time.now
  utc_time = Time.now.utc
  fraction_sec = Time.at(123456789.quo(9999999999)).getlocal("+09:00")
  future_time = Time.utc(10000)
benchmark:
  - time.xmlschema
  - utc_time.xmlschema
  - time.xmlschema(6)
  - utc_time.xmlschema(6)
  - time.xmlschema(9)
  - utc_time.xmlschema(9)
  - fraction_sec.xmlschema(10)
  - future_time.xmlschema
