Feature #9549 ยป 540.patch
| lib/time.rb | ||
|---|---|---|
|
# %Z :: Time zone name
|
||
|
# %% :: Literal "%" character
|
||
|
def strptime(date, format, now=self.now)
|
||
|
def strptime(date='-4712-01-01', format='%F', now=self.now)
|
||
|
d = Date._strptime(date, format)
|
||
|
raise ArgumentError, "invalid strptime format - `#{format}'" unless d
|
||
|
if seconds = d[:seconds]
|
||
| test/test_time.rb | ||
|---|---|---|
|
assert_equal(Time.at(1).localtime, Time.strptime("1", "%s"))
|
||
|
assert_equal(false, Time.strptime('0', '%s').utc?)
|
||
|
assert_equal(3600, Time.strptime('0 +0100', '%s %z').utc_offset)
|
||
|
assert_equal(Date.strptime.to_time, Time.strptime)
|
||
|
end
|
||
|
def test_nsec
|
||
|
-
|
||
| lib/time.rb | ||
|---|---|---|
|
# %Z :: Time zone name
|
||
|
# %% :: Literal "%" character
|
||
|
def strptime(date='-4712-01-01', format='%F', now=self.now)
|
||
|
d = Date._strptime(date, format)
|
||
|
raise ArgumentError, "invalid strptime format - `#{format}'" unless d
|
||
|
if seconds = d[:seconds]
|
||
|
if offset = d[:offset]
|
||
|
def strptime(time='-4712-01-01', format='%F', now=self.now)
|
||
|
date = Date.strptime(time, format) # will raise an ArgumentError if the time is invalid
|
||
|
hash = Date._strptime(time, format)
|
||
|
raise ArgumentError, "invalid strptime format - `#{format}'" unless hash
|
||
|
if seconds = hash[:seconds]
|
||
|
if offset = hash[:offset]
|
||
|
Time.at(seconds).localtime(offset)
|
||
|
else
|
||
|
Time.at(seconds)
|
||
|
end
|
||
|
else
|
||
|
year = d[:year]
|
||
|
year = date.year
|
||
|
year = yield(year) if year && block_given?
|
||
|
make_time(year, d[:mon], d[:mday], d[:hour], d[:min], d[:sec], d[:sec_fraction], d[:zone], now)
|
||
|
make_time(year, date.mon, date.mday, hash[:hour], hash[:min], hash[:sec], hash[:sec_fraction], hash[:zone], now)
|
||
|
end
|
||
|
end
|
||
| test/test_time.rb | ||
|---|---|---|
|
assert_equal(false, Time.strptime('0', '%s').utc?)
|
||
|
assert_equal(3600, Time.strptime('0 +0100', '%s %z').utc_offset)
|
||
|
assert_equal(Date.strptime.to_time, Time.strptime)
|
||
|
assert_raise(ArgumentError) {
|
||
|
Time.strptime('31/2/2014', '%d/%m/%Y')
|
||
|
}
|
||
|
end
|
||
|
def test_nsec
|
||
|
-
|
||
| lib/time.rb | ||
|---|---|---|
|
#
|
||
|
# You must require 'time' to use this method.
|
||
|
#
|
||
|
def parse(date, now=self.now)
|
||
|
def parse(time, now=self.now)
|
||
|
comp = !block_given?
|
||
|
d = Date._parse(date, comp)
|
||
|
if !d[:year] && !d[:mon] && !d[:mday] && !d[:hour] && !d[:min] && !d[:sec] && !d[:sec_fraction]
|
||
|
hash = Date._parse(time, comp)
|
||
|
if !hash[:year] && !hash[:mon] && !hash[:mday] && !hash[:hour] && !hash[:min] && !hash[:sec] && !hash[:sec_fraction]
|
||
|
raise ArgumentError, "no time information in #{date.inspect}"
|
||
|
end
|
||
|
year = d[:year]
|
||
|
year = hash[:year]
|
||
|
year = yield(year) if year && !comp
|
||
|
make_time(year, d[:mon], d[:mday], d[:hour], d[:min], d[:sec], d[:sec_fraction], d[:zone], now)
|
||
|
make_time(year, hash[:mon], hash[:mday], hash[:hour], hash[:min], hash[:sec], hash[:sec_fraction], hash[:zone], now)
|
||
|
end
|
||
|
#
|
||