var tz = None;
if (timeZone !== undefined){
tz = Some(timeZone);
}
if (_.isNumber(date) && _.isFinite(date)){
return DateTimeHelper.formatDate(date,format,tz);
} else if (_.isString(date)){
var jsDateLong = Date.parse(date);
return DateTimeHelper.formatDate(jsDateLong,format,tz);
} else if (!_.isNumber(date) && "getTime" in date && _.isFunction(date.getTime)){
return DateTimeHelper.formatDate(date.getTime(),format,tz);
} else {
return DateTimeHelper.formatDate(date,format,tz);
}