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
|
||
#
|