# Older browsers do not support ISO8601 (JSON) timestamps in Date.parse supportsISO8601 = not isNaN Date.parse("2011-01-01T12:00:00-05:00") LocalTime.parseDate = (dateString) -> dateString = dateString.toString() dateString = reformatDateString(dateString) unless supportsISO8601 new Date Date.parse(dateString) iso8601Pattern = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|[-+]?[\d:]+)$/ reformatDateString = (dateString) -> if matches = dateString.match(iso8601Pattern) [_, year, month, day, hour, minute, second, zone] = matches offset = zone.replace(":", "") if zone isnt "Z" "#{year}/#{month}/#{day} #{hour}:#{minute}:#{second} GMT#{[offset]}"