text: var offset = 0;
  
  exports.local = function(year, month, day, hours, minutes, seconds, milliseconds) {
    var date = new Date();
    date.setFullYear(year, month, day);
    date.setHours(hours || 0, offset + (minutes || 0), seconds || 0, milliseconds || 0);
    return date;
  };
  
  exports.utc = function(year, month, day, hours, minutes, seconds, milliseconds) {
    var date = new Date();
    date.setUTCFullYear(year, month, day);
    date.setUTCHours(hours || 0, minutes || 0, seconds || 0, milliseconds || 0);
    return date;
  };
  
  exports.zone = function(tzOffset, scope) {
    return function() {
      var o = Date.prototype.getTimezoneOffset;
      try {
        // Note: assumes the dates are not in DST.
        offset = -tzOffset - new Date(0).getTimezoneOffset();
        Date.prototype.getTimezoneOffset = function() { return offset; };
        scope.apply(this, arguments);
      } finally {
        offset = 0;
        Date.prototype.getTimezoneOffset = o;
      }
    };
  };
  