Module: RiCal::CoreExtensions::Time::Conversions

Included in:
Time
Defined in:
lib/ri_cal/core_extensions/time/conversions.rb

Overview

  • ©2009 Rick DeNatale

  • All rights reserved. Refer to the file README.txt for the license

Instance Method Summary collapse

Instance Method Details

#to_datetimeObject

Converts a Time instance to a Ruby DateTime instance, preserving UTC offset.

my_time = Time.now    # => Mon Nov 12 23:04:21 -0500 2007
my_time.to_datetime   # => Mon, 12 Nov 2007 23:04:21 -0500

your_time = Time.parse("1/13/2009 1:13:03 P.M.")  # => Tue Jan 13 13:13:03 -0500 2009
your_time.to_datetime                             # => Tue, 13 Jan 2009 13:13:03 -0500


37
38
39
40
# File 'lib/ri_cal/core_extensions/time/conversions.rb', line 37

def to_datetime
  # 86400 is the number of seconds in a day
  ::DateTime.civil(year, month, day, hour, min, sec, RiCal.RationalOffset[utc_offset])
end

#to_ri_cal_date_time_value(timezone_finder = nil) ⇒ Object Also known as: to_ri_cal_date_or_date_time_value, to_ri_cal_occurrence_list_value

Return an RiCal::PropertyValue::DateTime representing the receiver



9
10
11
12
13
14
# File 'lib/ri_cal/core_extensions/time/conversions.rb', line 9

def to_ri_cal_date_time_value(timezone_finder = nil) #:nodoc:
  RiCal::PropertyValue::DateTime.new(
       timezone_finder, 
       :value => strftime("%Y%m%dT%H%M%S"), 
       :params => {"TZID" => self.tzid || :default})
end

#to_ri_cal_property_value(timezone_finder = nil) ⇒ Object

Return the natural ri_cal_property for this object



20
21
22
# File 'lib/ri_cal/core_extensions/time/conversions.rb', line 20

def to_ri_cal_property_value(timezone_finder = nil) #:nodoc:
  to_ri_cal_date_time_value(timezone_finder)
end

#with_floating_timezoneObject

Return a copy of this object which will be interpreted as a floating time.



25
26
27
# File 'lib/ri_cal/core_extensions/time/conversions.rb', line 25

def with_floating_timezone
  dup.set_tzid(:floating)
end