class Time
Public Class Methods
iso8601(time)
click to toggle source
# File motion/core/time.rb, line 3 def self.iso8601(time) if time.include?(".") # Fractional Seconds if time.include?('Z') iso8601_with_fractional_seconds(time) else iso8601_with_fractional_seconds_and_timesone(time) end else # Non Fractional Seconds if time.include?('Z') iso8601_zulu(time) else iso8601_with_timezone(time) end end end
iso8601_with_fractional_seconds(time)
click to toggle source
# File motion/core/time.rb, line 31 def self.iso8601_with_fractional_seconds(time) cached_date_formatter("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"). dateFromString(time) end
iso8601_with_fractional_seconds_and_timesone(time)
click to toggle source
# File motion/core/time.rb, line 36 def self.iso8601_with_fractional_seconds_and_timesone(time) cached_date_formatter("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"). dateFromString(time) end
iso8601_with_timezone(time)
click to toggle source
# File motion/core/time.rb, line 26 def self.iso8601_with_timezone(time) cached_date_formatter("yyyy-MM-dd'T'HH:mm:ssZZZZZ"). dateFromString(time) end
iso8601_zulu(time)
click to toggle source
# File motion/core/time.rb, line 21 def self.iso8601_zulu(time) cached_date_formatter("yyyy-MM-dd'T'HH:mm:ss'Z'"). dateFromString(time) end
Private Class Methods
cached_date_formatter(dateFormat)
click to toggle source
# File motion/core/time.rb, line 43 def self.cached_date_formatter(dateFormat) Thread.current[:date_formatters] ||= {} Thread.current[:date_formatters][dateFormat] ||= NSDateFormatter.alloc.init.tap do |formatter| formatter.dateFormat = dateFormat formatter.timeZone = NSTimeZone.timeZoneWithAbbreviation "UTC" end end