class Time - json: Ruby Standard Library Documentation

# class Time

### Public Class Methods

json_create(object) click to toggle source

See `as_json`.

    # File json/lib/json/add/time.rb, line 9
    def self.json_create(object)
      if usec = object.delete('u') # used to be tv_usec -> tv_nsec
        object['n'] = usec * 1000
      end
      at(object['s'], Rational(object['n'], 1000))
    end

### Public Instance Methods

as_json(*) click to toggle source

Methods `Time#as_json` and `Time.json_create` may be used to serialize and deserialize a Time object; see Marshal.

Method `Time#as_json` serializes `self`, returning a 2-element hash representing `self`:

    require 'json/add/time'
    x = Time.now.as_json
    # => {"json_class"=>"Time", "s"=>1700931656, "n"=>472846644}

Method `JSON.create` deserializes such a hash, returning a Time object:

    Time.json_create(x)
    # => 2023-11-25 11:00:56.472846644 -0600

    # File json/lib/json/add/time.rb, line 32
    def as_json(*)
      {
        JSON.create_id => self.class.name,
        's'            => tv_sec,
        'n'            => tv_nsec,
      }
    end

to_json(*args) click to toggle source

Returns a `JSON` string representing `self`:

    require 'json/add/time'
    puts Time.now.to_json

Output:

    {"json_class":"Time","s":1700931678,"n":980650786}

    # File json/lib/json/add/time.rb, line 49
    def to_json(*args)
      as_json.to_json(*args)
    end