Class: W3cDatetime

Inherits:
Object
  • Object
show all
Defined in:
lib/w3c_datetime/w3c_datetime.rb

Overview

Handle W3 Date and Time formats

Handle W3 Date and Time formats as specified in www.w3.org/TR/NOTE-datetime

Examples:

W3cDateTime::parse('2013-02-10')
W3cDateTime::parse('2013-02-10T10:10Z')
W3cDateTime::parse('2013-02-10T10:10:20+10:00')

See Also:

Author:

Class Method Summary collapse

Class Method Details

.parse(date_str) ⇒ Time

Parse date string in www.w3.org/TR/NOTE-datetime format

Parameters:

Returns:

  • (Time)

    Time object



19
20
21
22
23
24
25
26
# File 'lib/w3c_datetime/w3c_datetime.rb', line 19

def self.parse(date_str)
  date_regexp = /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})(?:T(?<hour>\d{2}):(?<minute>\d{2}):?(?<second>\d{2})?\.?(?<milisecond>\d{1,2})?(?:(?<timezone>.+)|Z)?)?$/
  parsed = date_regexp.match(date_str)
  begin
    Time.new(parsed[:year].to_i, parsed[:month].to_i, parsed[:day].to_i, parsed[:hour].to_i, parsed[:minute].to_i, parsed[:second].to_i, get_timezone(parsed[:timezone])) unless parsed.nil?
  rescue ArgumentError, TypeError
  end
end