Changeset 8698
- Timestamp:
- 01/23/08 02:46:47 (5 months ago)
- Files:
-
- trunk/activesupport/CHANGELOG (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/date_time/conversions.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/time/conversions.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/json/encoders/time.rb (modified) (1 diff)
- trunk/activesupport/test/core_ext/date_time_ext_test.rb (modified) (1 diff)
- trunk/activesupport/test/core_ext/time_ext_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activesupport/CHANGELOG
r8697 r8698 1 1 *SVN* 2 3 * Adding Time and DateTime #formatted_offset, for outputting +HH:MM utc offset strings with cross-platform consistency [Geoff Buesing] 2 4 3 5 * Adding alternate_utc_string option to TimeZone#formatted_offset. Removing unneeded TimeZone#offset. [Geoff Buesing] trunk/activesupport/lib/active_support/core_ext/date_time/conversions.rb
r8608 r8698 53 53 end 54 54 55 # Returns the utc_offset as an +HH:MM formatted string. Examples: 56 # 57 # datetime = DateTime.civil(2000, 1, 1, 0, 0, 0, Rational(-6, 24)) 58 # datetime.formatted_offset # => "-06:00" 59 # datetime.formatted_offset(false) # => "-0600" 60 def formatted_offset(colon = true, alternate_utc_string = nil) 61 utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) 62 end 63 55 64 # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005 14:30:00 +0000" 56 65 def readable_inspect trunk/activesupport/lib/active_support/core_ext/time/conversions.rb
r8608 r8698 56 56 end 57 57 end 58 59 # Returns the utc_offset as an +HH:MM formatted string. Examples: 60 # 61 # Time.local(2000).formatted_offset # => "-06:00" 62 # Time.local(2000).formatted_offset(false) # => "-0600" 63 def formatted_offset(colon = true, alternate_utc_string = nil) 64 utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) 65 end 58 66 59 67 # Convert a Time object to a Date, dropping hour, minute, and second precision. trunk/activesupport/lib/active_support/json/encoders/time.rb
r8636 r8698 1 1 class Time 2 2 def to_json(options = nil) #:nodoc: 3 %("#{strftime("%Y/%m/%d %H:%M:%S")} #{ utc_offset.to_utc_offset_s(false)}")3 %("#{strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)}") 4 4 end 5 5 end trunk/activesupport/test/core_ext/date_time_ext_test.rb
r8649 r8698 242 242 assert_equal DateTime.civil(2005, 2, 21, 9, 11, 12, 0), DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(1, 24)).utc 243 243 end 244 245 def test_formatted_offset_with_utc 246 assert_equal '+00:00', DateTime.civil(2000).formatted_offset 247 assert_equal '+0000', DateTime.civil(2000).formatted_offset(false) 248 assert_equal 'UTC', DateTime.civil(2000).formatted_offset(true, 'UTC') 249 end 250 251 def test_formatted_offset_with_local 252 dt = DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-5, 24)) 253 assert_equal '-05:00', dt.formatted_offset 254 assert_equal '-0500', dt.formatted_offset(false) 255 end 244 256 245 257 protected trunk/activesupport/test/core_ext/time_ext_test.rb
r8563 r8698 410 410 assert Time.new.acts_like_time? 411 411 end 412 413 def test_formatted_offset_with_utc 414 assert_equal '+00:00', Time.utc(2000).formatted_offset 415 assert_equal '+0000', Time.utc(2000).formatted_offset(false) 416 assert_equal 'UTC', Time.utc(2000).formatted_offset(true, 'UTC') 417 end 418 419 def test_formatted_offset_with_local 420 with_timezone 'US/Eastern' do 421 assert_equal '-05:00', Time.local(2000).formatted_offset 422 assert_equal '-0500', Time.local(2000).formatted_offset(false) 423 assert_equal '-04:00', Time.local(2000, 7).formatted_offset 424 assert_equal '-0400', Time.local(2000, 7).formatted_offset(false) 425 end 426 end 412 427 413 428 protected