In Files

  • date.rb
  • date/format.rb

Class/Module Index [+]

Quicksearch

DateTime

Public Class Methods

_strptime(str, fmt='%FT%T%z') click to toggle source
 
               # File date/format.rb, line 1285
def self._strptime(str, fmt='%FT%T%z')
  super(str, fmt)
end
            
civil(y=-4712, m=1, d=1, h=0, min=0, s=0, of=0, sg=ITALY) click to toggle source

Create a new DateTime object corresponding to the specified Civil Date and hour h, minute min, second s.

The 24-hour clock is used. Negative values of h, min, and sec are treating as counting backwards from the end of the next larger unit (e.g. a min of -2 is treated as 58). No wraparound is performed. If an invalid time portion is specified, an ArgumentError is raised.

of is the offset from UTC as a fraction of a day (defaults to 0). sg specifies the Day of Calendar Reform.

y defaults to -4712, m to 1, and d to 1; this is Julian Day Number day 0. The time values default to 0.

 
               # File date.rb, line 1606
def self.civil(y=-4712, m=1, d=1, h=0, min=0, s=0, of=0, sg=ITALY)
  unless (jd = _valid_civil?(y, m, d, sg)) &&
         (fr = _valid_time?(h, min, s))
    raise ArgumentError, 'invalid date'
  end
  if String === of
    of = Rational(zone_to_diff(of) || 0, 86400)
  end
  new!(jd_to_ajd(jd, fr, of), of, sg)
end
            
Also aliased as: new
commercial(y=-4712, w=1, d=1, h=0, min=0, s=0, of=0, sg=ITALY) click to toggle source

Create a new DateTime object corresponding to the specified Commercial Date and hour h, minute min, second s.

The 24-hour clock is used. Negative values of h, min, and sec are treating as counting backwards from the end of the next larger unit (e.g. a min of -2 is treated as 58). No wraparound is performed. If an invalid time portion is specified, an ArgumentError is raised.

of is the offset from UTC as a fraction of a day (defaults to 0). sg specifies the Day of Calendar Reform.

y defaults to -4712, w to 1, and d to 1; this is Julian Day Number day 0. The time values default to 0.

 
               # File date.rb, line 1634
def self.commercial(y=-4712, w=1, d=1, h=0, min=0, s=0, of=0, sg=ITALY)
  unless (jd = _valid_commercial?(y, w, d, sg)) &&
         (fr = _valid_time?(h, min, s))
    raise ArgumentError, 'invalid date'
  end
  if String === of
    of = Rational(zone_to_diff(of) || 0, 86400)
  end
  new!(jd_to_ajd(jd, fr, of), of, sg)
end
            
jd(jd=0, h=0, min=0, s=0, of=0, sg=ITALY) click to toggle source

Create a new DateTime object corresponding to the specified Julian Day Number jd and hour h, minute min, second s.

The 24-hour clock is used. Negative values of h, min, and sec are treating as counting backwards from the end of the next larger unit (e.g. a min of -2 is treated as 58). No wraparound is performed. If an invalid time portion is specified, an ArgumentError is raised.

of is the offset from UTC as a fraction of a day (defaults to 0). sg specifies the Day of Calendar Reform.

All day/time values default to 0.

 
               # File date.rb, line 1556
def self.jd(jd=0, h=0, min=0, s=0, of=0, sg=ITALY)
  unless (jd = _valid_jd?(jd, sg)) &&
         (fr = _valid_time?(h, min, s))
    raise ArgumentError, 'invalid date'
  end
  if String === of
    of = Rational(zone_to_diff(of) || 0, 86400)
  end
  new!(jd_to_ajd(jd, fr, of), of, sg)
end
            
new(y=-4712, m=1, d=1, h=0, min=0, s=0, of=0, sg=ITALY) click to toggle source
Alias for: civil
ordinal(y=-4712, d=1, h=0, min=0, s=0, of=0, sg=ITALY) click to toggle source

Create a new DateTime object corresponding to the specified Ordinal Date and hour h, minute min, second s.

The 24-hour clock is used. Negative values of h, min, and sec are treating as counting backwards from the end of the next larger unit (e.g. a min of -2 is treated as 58). No wraparound is performed. If an invalid time portion is specified, an ArgumentError is raised.

of is the offset from UTC as a fraction of a day (defaults to 0). sg specifies the Day of Calendar Reform.

y defaults to -4712, and d to 1; this is Julian Day Number day 0. The time values default to 0.

 
               # File date.rb, line 1581
def self.ordinal(y=-4712, d=1, h=0, min=0, s=0, of=0, sg=ITALY)
  unless (jd = _valid_ordinal?(y, d, sg)) &&
         (fr = _valid_time?(h, min, s))
    raise ArgumentError, 'invalid date'
  end
  if String === of
    of = Rational(zone_to_diff(of) || 0, 86400)
  end
  new!(jd_to_ajd(jd, fr, of), of, sg)
end
            
parse(str='-4712-01-01T00:00:00+00:00', comp=true, sg=ITALY) click to toggle source

Create a new DateTime object by parsing from a String, without specifying the format.

str is a String holding a date-time representation. comp specifies whether to interpret 2-digit years as 19XX (>= 69) or 20XX (< 69); the default is not to. The method will attempt to parse a date-time from the String using various heuristics; see #_parse in date/format.rb for more details. If parsing fails, an ArgumentError will be raised.

The default str is '-4712-01-01T00:00:00+00:00'; this is Julian Day Number day 0.

sg specifies the Day of Calendar Reform.

 
               # File date.rb, line 1719
def self.parse(str='-4712-01-01T00:00:00+00:00', comp=true, sg=ITALY)
  elem = _parse(str, comp)
  new_by_frags(elem, sg)
end
            
strptime(str='-4712-01-01T00:00:00+00:00', fmt='%FT%T%z', sg=ITALY) click to toggle source

Create a new DateTime object by parsing from a String according to a specified format.

str is a String holding a date-time representation. fmt is the format that the date-time is in. See date/format.rb for details on supported formats.

The default str is '-4712-01-01T00:00:00+00:00', and the default fmt is '%FT%T%z'. This gives midnight on Julian Day Number day 0.

sg specifies the Day of Calendar Reform.

An ArgumentError will be raised if str cannot be parsed.

 
               # File date.rb, line 1699
def self.strptime(str='-4712-01-01T00:00:00+00:00', fmt='%FT%T%z', sg=ITALY)
  elem = _strptime(str, fmt)
  new_by_frags(elem, sg)
end
            

Public Instance Methods

iso8601(n=0) click to toggle source
 
               # File date/format.rb, line 1301
def iso8601(n=0)
  super() + iso8601_timediv(n)
end
            
rfc3339(n=0) click to toggle source
 
               # File date/format.rb, line 1305
def rfc3339(n=0) iso8601(n) end
            
strftime(fmt='%FT%T%:z') click to toggle source
 
               # File date/format.rb, line 1281
def strftime(fmt='%FT%T%:z')
  super(fmt)
end
            
to_date() click to toggle source
 
               # File date.rb, line 1828
def to_date() Date.new!(jd_to_ajd(jd, 0, 0), 0, @sg) end
            
to_datetime() click to toggle source
 
               # File date.rb, line 1829
def to_datetime() self end
            
to_s() click to toggle source
 
               # File date.rb, line 1759
def to_s # 4p
  format('%.4d-%02d-%02dT%02d:%02d:%02d%s',
         year, mon, mday, hour, min, sec, zone)
end
            
to_time() click to toggle source
 
               # File date.rb, line 1819
def to_time
  d = new_offset(0)
  d.instance_eval do
    Time.utc(year, mon, mday, hour, min, sec +
             sec_fraction)
  end.
      getlocal
end