force all JSON dates to be in UTC

This commit is contained in:
Chris Anderson 2008-09-26 14:31:29 -07:00
parent 2a206fdd72
commit a6f852943e

View file

@ -2,17 +2,21 @@
# this file must be loaded after the JSON gem # this file must be loaded after the JSON gem
class Time class Time
# this date format sorts lexicographically # This date format sorts lexicographically
# and is compatible with Javascript's new Date(time_string) constructor # and is compatible with Javascript's new Date(time_string) constructor.
# note that sorting will break if you store times from multiple timezones # Note this this format stores all dates in UTC so that collation
# I like to add a ENV['TZ'] = 'UTC' to my apps # order is preserved. (There's no longer a need to set ENV['TZ'] = 'UTC'
# in your application.)
def to_json(options = nil) def to_json(options = nil)
%("#{strftime("%Y/%m/%d %H:%M:%S %z")}") u = self.utc
%("#{u.strftime("%Y/%m/%d %H:%M:%S +0000")}")
end end
# this works to decode the outputted time format # Decodes the JSON time format to a UTC time.
# copied from ActiveSupport # Based on Time.parse from ActiveSupport. ActiveSupport's version
# is more complete, returning a time in your current timezone,
# rather than keeping the time in UTC. YMMV.
# def self.parse string, fallback=nil # def self.parse string, fallback=nil
# d = DateTime.parse(string).new_offset # d = DateTime.parse(string).new_offset
# self.utc(d.year, d.month, d.day, d.hour, d.min, d.sec) # self.utc(d.year, d.month, d.day, d.hour, d.min, d.sec)