function date (list, path, options) {
	this._nativeType = Date;
	this._underscoreMethods = ['format', 'moment', 'parse'];
	this._fixedSize = 'medium';
	this._properties = ['formatString', 'yearRange', 'isUTC', 'inputFormat', 'todayButton'];
	this.parseFormatString = options.inputFormat || 'YYYY-MM-DD';
	this.formatString = (options.format === false) ? false : (options.format || 'Do MMM YYYY');

	this.yearRange = options.yearRange;
	this.isUTC = options.utc || false;
	this.todayButton = typeof options.todayButton !== 'undefined' ? options.todayButton : true;

	/*
	 * This offset is used to determine whether or not a stored date is probably corrupted or not.
	 * If the date/time stored plus this offset equals a time close to midnight for that day, that
	 * resulting date/time will be provided via the getData method instead of the one that is stored.
	 * By default this timezone offset matches the offset of the keystone server. Using the default
	 * setting is highly recommended.
	 */
	this.timezoneUtcOffsetMinutes = options.timezoneUtcOffsetMinutes || moment().utcOffset();

	if (this.formatString && typeof this.formatString !== 'string') {
		throw new Error('FieldType.Date: options.format must be a string.');
	}
	date.super_.call(this, list, path, options);
}
Date FieldType Constructor
@extends Field
@api public