Sha256: b778038861d3e427875fadc1842542000651b27c0dbf858351a8b78afc03809c
Contents?: true
Size: 1.96 KB
Versions: 8
Compression:
Stored size: 1.96 KB
Contents
module Barometer module Utils module Time def self.parse(*args) return unless args.compact.size > 0 first_arg = args.first if first_arg.is_a? ::Time first_arg elsif first_arg.is_a?(::DateTime) || first_arg.is_a?(::Date) ::Time.parse(first_arg.to_s) elsif args.size == 1 || args.size == 2 strptime(*args) else ::Time.utc(*args) end end def self.strftime(time) time.strftime("%Y-%m-%d %H:%M:%S %z") end def self.strptime(str, format=nil) dt = if format ::DateTime.strptime(str, format) else ::DateTime.parse(str) end ::Time.utc(dt.year, dt.month, dt.day, dt.hour, dt.min, dt.sec) - (dt.zone.to_f * 60 * 60) end def self.utc_from_base_plus_local_time(tz, base, hour, min) return unless tz && base local_base = tz.utc_to_local(base.utc) local_time = ::Time.utc(local_base.year, local_base.month, local_base.day, hour, min, 0) tz.local_to_utc(local_time) end def self.utc_merge_base_plus_time(base_time=nil, time=nil) return unless base_time && time base_time_utc = base_time.utc time_utc = time.utc ::Time.utc( base_time_utc.year, base_time_utc.month, base_time_utc.day, time_utc.hour, time_utc.min, 0 ) end def self.add_one_day(time) return unless time one_day_minus_one_second = (60 * 60 * 24 - 1) time + one_day_minus_one_second end def self.add_one_hour(time) return unless time one_hour = (60 * 60 * 1) time + one_hour end def self.start_of_day(time) ::Time.utc( time.year, time.month, time.day, 0, 0, 0 ) end def self.end_of_day(time) ::Time.utc( time.year, time.month, time.day, 23, 59, 59 ) end end end end
Version data entries
8 entries across 8 versions & 1 rubygems