Class: DateTime
- Defined in:
- lib/date.rb,
lib/date.rb,
lib/date.rb,
lib/date/format.rb
Overview
Class representing a date and time.
See the documentation to the file date.rb for an overview.
DateTime objects are immutable once created.
Other methods.
The following methods are defined in Date, but declared private there. They are made public in DateTime. They are documented here.
hour()
Get the hour-of-the-day of the time. This is given using the 24-hour clock, counting from midnight. The first hour after midnight is hour 0; the last hour of the day is hour 23.
min()
Get the minute-of-the-hour of the time.
sec()
Get the second-of-the-minute of the time.
sec_fraction()
Get the fraction of a second of the time. This is returned as
a Rational. The unit is in days.
I do NOT recommend you to use this method.
zone()
Get the time zone as a String. This is representation of the time offset such as "+1000", not the true time-zone name.
offset()
Get the time zone offset as a fraction of a day. This is returned
as a Rational.
new_offset(of=0)
Create a new DateTime object, identical to the current one, except
with a new time zone offset of of. of is the new offset from
UTC as a fraction of a day.
Constant Summary
Constants inherited from Date
Date::ABBR_DAYNAMES, Date::ABBR_MONTHNAMES, Date::DAYNAMES, Date::ENGLAND, Date::GREGORIAN, Date::HALF_DAYS_IN_DAY, Date::HOURS_IN_DAY, Date::ITALY, Date::JULIAN, Date::LD_EPOCH_IN_CJD, Date::MILLISECONDS_IN_DAY, Date::MILLISECONDS_IN_SECOND, Date::MINUTES_IN_DAY, Date::MJD_EPOCH_IN_AJD, Date::MJD_EPOCH_IN_CJD, Date::MONTHNAMES, Date::NANOSECONDS_IN_DAY, Date::NANOSECONDS_IN_SECOND, Date::SECONDS_IN_DAY, Date::UNIX_EPOCH_IN_AJD, Date::UNIX_EPOCH_IN_CJD
Class Method Summary collapse
- ._strptime(str, fmt = '%FT%T%z') ⇒ Object
-
.civil(y = -4712,, m = 1, d = 1, h = 0, min = 0, s = 0, of = 0, sg = ITALY) ⇒ Object
(also: new)
Create a new DateTime object corresponding to the specified Civil Date and hour
h, minutemin, seconds. -
.commercial(y = 1582, w = 41, d = 5, h = 0, min = 0, s = 0, of = 0, sg = ITALY) ⇒ Object
Create a new DateTime object corresponding to the specified Commercial Date and hour
h, minutemin, seconds. -
.jd(jd = 0, h = 0, min = 0, s = 0, of = 0, sg = ITALY) ⇒ Object
Create a new DateTime object corresponding to the specified Julian Day Number
jdand hourh, minutemin, seconds. -
.ordinal(y = -4712,, d = 1, h = 0, min = 0, s = 0, of = 0, sg = ITALY) ⇒ Object
Create a new DateTime object corresponding to the specified Ordinal Date and hour
h, minutemin, seconds. -
.parse(str = '-4712-01-01T00:00:00+00:00', comp = false, sg = ITALY) ⇒ Object
Create a new DateTime object by parsing from a String, without specifying the format.
-
.strptime(str = '-4712-01-01T00:00:00+00:00', fmt = '%FT%T%z', sg = ITALY) ⇒ Object
Create a new DateTime object by parsing from a String according to a specified format.
Instance Method Summary collapse
- #strftime(fmt = '%FT%T%:z') ⇒ Object
-
#to_s ⇒ Object
:minute, :second, :second_fraction.
Methods inherited from Date
#+, #-, #<<, #<=>, #===, #>>, #_dump, _load, _parse, #ajd, ajd_to_amjd, ajd_to_jd, #amjd, amjd_to_ajd, #asctime, civil_to_jd, commercial_to_jd, #cwday, #cweek, #cwyear, #day_fraction, day_fraction_to_time, deprecated_alias, deprecated_class_method_alias, #downto, #england, #eql?, #gregorian, #gregorian?, gregorian?, gregorian_leap?, #hash, #initialize, #inspect, #italy, #jd, jd_to_ajd, jd_to_civil, jd_to_commercial, jd_to_ld, jd_to_mjd, jd_to_ordinal, jd_to_wday, #julian, #julian?, julian?, julian_leap?, #ld, ld_to_jd, #leap?, #mday, #mjd, mjd_to_jd, #mon, #new_start, #next, once, ordinal_to_jd, #start, #step, today, #upto, valid_civil?, valid_commercial?, valid_jd?, valid_ordinal?, valid_time?, #wday, #yday, #year, zone_to_diff
Constructor Details
This class inherits a constructor from Date
Class Method Details
._strptime(str, fmt = '%FT%T%z') ⇒ Object
1162 1163 1164 |
# File 'lib/date/format.rb', line 1162 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) ⇒ Object Also known as: new
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.
1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 |
# File 'lib/date.rb', line 1516 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 |
.commercial(y = 1582, w = 41, d = 5, h = 0, min = 0, s = 0, of = 0, sg = ITALY) ⇒ Object
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 1582, w to 41, and d to 5; this is the Day of
Calendar Reform for Italy and the Catholic countries.
The time values default to 0.
1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 |
# File 'lib/date.rb', line 1544 def self.commercial(y=1582, w=41, d=5, 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) ⇒ Object
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.
1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 |
# File 'lib/date.rb', line 1466 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 |
.ordinal(y = -4712,, d = 1, h = 0, min = 0, s = 0, of = 0, sg = ITALY) ⇒ Object
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.
1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 |
# File 'lib/date.rb', line 1491 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 = false, sg = ITALY) ⇒ Object
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.
1616 1617 1618 1619 |
# File 'lib/date.rb', line 1616 def self.parse(str='-4712-01-01T00:00:00+00:00', comp=false, 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) ⇒ Object
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.
1596 1597 1598 1599 |
# File 'lib/date.rb', line 1596 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 |
Instance Method Details
#strftime(fmt = '%FT%T%:z') ⇒ Object
1158 1159 1160 |
# File 'lib/date/format.rb', line 1158 def strftime(fmt='%FT%T%:z') super(fmt) end |
#to_s ⇒ Object
:minute, :second, :second_fraction
1624 1625 1626 1627 |
# File 'lib/date.rb', line 1624 def to_s # 4p format('%.4d-%02d-%02dT%02d:%02d:%02d%s', year, mon, mday, hour, min, sec, zone) end |