String#to_time overflows to DateTime. Add String#to_datetime. Closes #8572.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6935 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
601778e38a
commit
4685fa0c20
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* String#to_time overflows to DateTime. Add String#to_datetime. #8572 [Geoff Buesing]
|
||||
|
||||
* Date.yesterday and .tomorrow. #8571 [Geoff Buesing]
|
||||
|
||||
* Readable Date and DateTime#inspect. #8570 [Geoff Buesing]
|
||||
|
|
|
@ -7,12 +7,16 @@ module ActiveSupport #:nodoc:
|
|||
module Conversions
|
||||
# Form can be either :utc (default) or :local.
|
||||
def to_time(form = :utc)
|
||||
::Time.send(form, *ParseDate.parsedate(self))
|
||||
::Time.send("#{form}_time", *ParseDate.parsedate(self)[0..5].map {|arg| arg || 0})
|
||||
end
|
||||
|
||||
def to_date
|
||||
::Date.new(*ParseDate.parsedate(self)[0..2])
|
||||
end
|
||||
|
||||
def to_datetime
|
||||
::DateTime.civil(*ParseDate.parsedate(self)[0..5].map {|arg| arg || 0} << 0 << 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -78,7 +78,10 @@ class StringInflectionsTest < Test::Unit::TestCase
|
|||
def test_string_to_time
|
||||
assert_equal Time.utc(2005, 2, 27, 23, 50), "2005-02-27 23:50".to_time
|
||||
assert_equal Time.local(2005, 2, 27, 23, 50), "2005-02-27 23:50".to_time(:local)
|
||||
assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time
|
||||
assert_equal Time.local_time(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time(:local)
|
||||
assert_equal Date.new(2005, 2, 27), "2005-02-27".to_date
|
||||
assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_datetime
|
||||
end
|
||||
|
||||
def test_access
|
||||
|
|
Loading…
Reference in New Issue