Eno::Loaders ยป #datetime

datetime โ†’ Time
datetime_items โ†’ array
datetime_list โ†’ array

Accepts a subset of ISO 8601 date/time formats described in this W3C note: https://www.w3.org/TR/NOTE-datetime

Returns a ruby Time object (or raises an error for invalid values).

Some possible example values that match the format:

  • 1990
  • 1990-12
  • 1990-12-31
  • 1990-12-31T23:59Z
  • 1990-12-31T23:59:00+01:00
  • 1990-12-31T23:59:00.999+01:00

Note that spaces as separators are not allowed.

Development note: A more appealing, less technical datetime format or an additional loader to serve that requirement would be generally welcome, the current format is basically just an initial draft that should cover many usecases and is standardized through its ISO origin, feel free to get in touch and propose an extension/update if you'd be interested in such development.

enostart: 1992-12-01
end: 1994-03-04T13:14Z
invalid: 2018-03-14 13:10
rubydocument = Eno.parse(input)

document.datetime('start')  #=> 1992-12-01 00:00:00 +0000
document.datetime('end')  #=> 1994-03-04 13:14:00 +0000

document.datetime('invalid')
  # raises an error: 'invalid' must contain a valid date or date and time, for instance '1997-07-16' or '1994-11-05T13:15Z' (see https://www.w3.org/TR/NOTE-datetime).