Mega Code Archive

 
Categories / Ruby / Date
 

Convert a date to gm time, local time

class Date   def to_gm_time     to_time(new_offset, :gm)   end   def to_local_time     to_time(new_offset(DateTime.now.offset-offset), :local)   end   private   def to_time(dest, method)     usec = (dest.sec_fraction * 60 * 60 * 24 * (10**6)).to_i     Time.send(method, dest.year, dest.month, dest.day, dest.hour, dest.min,               dest.sec, usec)   end end puts (datetime = DateTime.new(1990, 10, 1, 22, 16, Rational(41,2))).to_s puts datetime.to_gm_time puts datetime.to_local_time puts time.to_datetime < datetime puts time < datetime.to_gm_time puts (time.to_datetime - datetime).to_f puts time - datetime.to_gm_time