Por lo general, no quiero mostrar una fecha UTC ya que a los clientes no les gusta hacer la conversión en su cabeza. Para mostrar una fecha ISO local , uso la función:
function toLocalIsoString(date, includeSeconds) {
function pad(n) { return n < 10 ? '0' + n : n }
var localIsoString = date.getFullYear() + '-'
+ pad(date.getMonth() + 1) + '-'
+ pad(date.getDate()) + 'T'
+ pad(date.getHours()) + ':'
+ pad(date.getMinutes()) + ':'
+ pad(date.getSeconds());
if(date.getTimezoneOffset() == 0) localIsoString += 'Z';
return localIsoString;
};
La función anterior omite la información de desplazamiento de zona horaria (excepto si la hora local es UTC), por lo que utilizo la siguiente función para mostrar el desplazamiento local en una sola ubicación. También puede agregar su salida a los resultados de la función anterior si desea mostrar el desplazamiento cada vez:
function getOffsetFromUTC() {
var offset = new Date().getTimezoneOffset();
return ((offset < 0 ? '+' : '-')
+ pad(Math.abs(offset / 60), 2)
+ ':'
+ pad(Math.abs(offset % 60), 2))
};
toLocalIsoString
usos pad
. Si es necesario, funciona como casi cualquier función de pad, pero en aras de la integridad, esto es lo que uso:
// Pad a number to length using padChar
function pad(number, length, padChar) {
if (typeof length === 'undefined') length = 2;
if (typeof padChar === 'undefined') padChar = '0';
var str = "" + number;
while (str.length < length) {
str = padChar + str;
}
return str;
}