Class: DateTime
- Includes:
- DateTimePrecision
- Defined in:
- lib/date_time_precision/patch/1.8.7/date_time.rb,
lib/date_time_precision/patch/1.9.2/date_time.rb,
lib/date_time_precision/patch/1.9.3/date_time.rb,
lib/date_time_precision/patch/common/date_time.rb
Constant Summary collapse
- MAX_PRECISION =
if DateTimePrecision::MICROSECONDS_SUPPORTED DateTimePrecision::USEC else DateTimePrecision::SEC end
Constants included from DateTimePrecision
DateTimePrecision::DATE_ATTRIBUTES, DateTimePrecision::DATE_ATTRIBUTE_PRECISIONS, DateTimePrecision::DAY, DateTimePrecision::HOUR, DateTimePrecision::ISO8601_DATE_FRAGMENTS, DateTimePrecision::ISO8601_TIME_FRAGMENTS, DateTimePrecision::MICROSECONDS_SUPPORTED, DateTimePrecision::MIN, DateTimePrecision::MONTH, DateTimePrecision::NEW_DEFAULTS, DateTimePrecision::NONE, DateTimePrecision::PATCH_VERSION, DateTimePrecision::SEC, DateTimePrecision::USEC, DateTimePrecision::VERSION, DateTimePrecision::YEAR
Class Method Summary collapse
- .civil(*args) ⇒ Object
- .civil_orig ⇒ Object
- .local(*args) ⇒ Object
- .new(*args) ⇒ Object
- .new_orig ⇒ Object
- .parse(str = '-4712-01-01T00:00:00+00:00', now = self.now) ⇒ Object
- .parse_orig ⇒ Object
- .strptime(date, format = '%F', start = Date::ITALY) ⇒ Object
- .strptime_orig ⇒ Object
- .utc(*args) ⇒ Object
Instance Method Summary collapse
Methods included from DateTimePrecision
#as_json, #fragments, included, #partial_match?, precision, #precision, #precision=, #to_h, #to_json
Methods inherited from Date
Class Method Details
.civil(*args) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/date_time_precision/patch/1.8.7/date_time.rb', line 13 def civil(y=nil, m=nil, d=nil, h=nil, min=nil, s=nil, of=0, sg=DateTime::ITALY) time_args = [y,m,d,h,min,s] precision = self.precision(time_args) time_args = normalize_new_args(time_args) unless (jd = valid_civil?(time_args[0], time_args[1], time_args[2], sg)) && (fr = valid_time?(time_args[3], time_args[4], time_args[5])) raise ArgumentError, 'invalid date' end if String === of of = Rational(zone_to_diff(of) || 0, 86400) end dt = new!(jd_to_ajd(jd, fr, of), of, sg) dt.precision = precision dt.attributes_set(y,m,d,h,min,s) dt end |
.civil_orig ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/date_time_precision/patch/1.9.3/date_time.rb', line 24 def civil(y=nil, m=nil, d=nil, h=nil, min=nil, s=nil, of=0, sg=DateTime::ITALY) time_args = [y,m,d,h,min,s] precision = self.precision(time_args) time_args = normalize_new_args(time_args) unless (jd = valid_civil?(time_args[0], time_args[1], time_args[2], sg)) && (fr = valid_time?(time_args[3], time_args[4], time_args[5])) raise ArgumentError, 'invalid date' end if String === of of = Rational(zone_to_diff(of) || 0, 86400) end dt = new!(jd_to_ajd(jd, fr, of), of, sg) dt.precision = precision dt.attributes_set(y,m,d,h,min,s) dt end |
.local(*args) ⇒ Object
44 45 46 |
# File 'lib/date_time_precision/patch/1.8.7/date_time.rb', line 44 def local(*args) Time.local(*args).to_datetime end |
.new(*args) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/date_time_precision/patch/1.8.7/date_time.rb', line 30 def civil(y=nil, m=nil, d=nil, h=nil, min=nil, s=nil, of=0, sg=DateTime::ITALY) time_args = [y,m,d,h,min,s] precision = self.precision(time_args) time_args = normalize_new_args(time_args) unless (jd = valid_civil?(time_args[0], time_args[1], time_args[2], sg)) && (fr = valid_time?(time_args[3], time_args[4], time_args[5])) raise ArgumentError, 'invalid date' end if String === of of = Rational(zone_to_diff(of) || 0, 86400) end dt = new!(jd_to_ajd(jd, fr, of), of, sg) dt.precision = precision dt.attributes_set(y,m,d,h,min,s) dt end |
.new_orig ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/date_time_precision/patch/1.9.3/date_time.rb', line 5 def civil(y=nil, m=nil, d=nil, h=nil, min=nil, s=nil, of=0, sg=DateTime::ITALY) time_args = [y,m,d,h,min,s] precision = self.precision(time_args) time_args = normalize_new_args(time_args) unless (jd = valid_civil?(time_args[0], time_args[1], time_args[2], sg)) && (fr = valid_time?(time_args[3], time_args[4], time_args[5])) raise ArgumentError, 'invalid date' end if String === of of = Rational(zone_to_diff(of) || 0, 86400) end dt = new!(jd_to_ajd(jd, fr, of), of, sg) dt.precision = precision dt.attributes_set(y,m,d,h,min,s) dt end |
.parse(str = '-4712-01-01T00:00:00+00:00', now = self.now) ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/date_time_precision/patch/1.8.7/date_time.rb', line 5 def parse(str='-4712-01-01T00:00:00+00:00', comp=false, sg=DateTime::ITALY) elem = _parse(str, comp) precision = DateTimePrecision::precision(elem) dt = new_by_frags(elem, sg) dt.precision = precision dt end |
.parse_orig ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/date_time_precision/patch/1.9.3/date_time.rb', line 14 def parse(str='-4712-01-01T00:00:00+00:00', comp=false, sg=DateTime::ITALY) elem = _parse(str, comp) precision = DateTimePrecision::precision(elem) dt = new_by_frags(elem, sg) dt.precision = precision dt end |
.strptime(date, format = '%F', start = Date::ITALY) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/date_time_precision/patch/1.8.7/date_time.rb', line 32 def strptime(str='-4712-01-01', fmt='%F', sg=DateTime::ITALY) elem = _strptime(str, fmt) precision = DateTimePrecision::precision(elem) d = new_by_frags(elem, sg) d.precision = precision d end |
.strptime_orig ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/date_time_precision/patch/1.9.3/date_time.rb', line 36 def strptime(str='-4712-01-01', fmt='%F', sg=DateTime::ITALY) elem = _strptime(str, fmt) precision = DateTimePrecision::precision(elem) d = new_by_frags(elem, sg) d.precision = precision d end |
Instance Method Details
#usec ⇒ Object
18 19 20 |
# File 'lib/date_time_precision/patch/common/date_time.rb', line 18 def usec (sec_fraction.to_f*1_000_000).to_i end |
#utc ⇒ Object
49 50 51 |
# File 'lib/date_time_precision/patch/1.8.7/date_time.rb', line 49 def utc self.to_time.utc.to_datetime end |