¿Cómo ISO 8601 formatear una fecha con desplazamiento de zona horaria en JavaScript?

Gol: Encuentra ellocal time yUTC time offset luego construir la URL en el siguiente formato.

URL de ejemplo: / Actions / Sleep? Duration = 2002-10-10T12: 00: 00−05: 00

El formato se basa en la recomendación W3C:http://www.w3.org/TR/xmlschema11-2/#dateTime

La documentación dice:

Por ejemplo, 2002-10-10T12: 00: 00−05: 00 (al mediodía del 10 de octubre de 2002, el horario de verano central y el horario estándar del este en los EE. UU.) Es igual al 2002-10-10T17: 00: 00Z. Cinco horas después de 2002-10-10T12: 00: 00Z.

Entonces, según mi entendimiento, necesito encontrar mi hora local por la nueva Fecha () y luego usar la función getTimezoneOffset () para calcular la diferencia y luego adjuntarla al final de la cadena.

1. Obtener hora local con formato

var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)

salida

2013-07-02T09:00:00

2. Obtener tiempo UTC compensado por hora

var offset = local.getTimezoneOffset() / 60;

salida

7

3.Construir URL (solo parte de tiempo)

var duration = local + "-" + offset + ":00";

salida:

2013-07-02T09:00:00-7:00

La salida anterior significa que mi hora local es 2013/07/02 9 am y la diferencia de UTC es de 7 horas (UTC es de 7 horas antes de la hora local)

Hasta ahora parece funcionar pero¿Qué pasa si getTimezoneOffset () devuelve un valor negativo como -120?

Me pregunto cómo debería ser el formato en tal caso porque no puedo entender el documento W3C. Gracias por adelantado.

Respuestas a la pregunta(4)

Su respuesta a la pregunta