es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener la cadena de desfase horario de una hoja de cálculo de Google en lugar de la cadena de zona horaria?

La hoja de cálculo de Google Sheets tiene una configuración de zona horaria que se muestra a través del menú Archivo -> Configuración. Ver imagen.
aquí

Sin embargo, la siguiente línea de código

SpreadsheetApp.getActive().getSpreadsheetTimeZone();

devuelve: America/Nueva_York

Me gustaría obtener, utilizando App Script, la cadena de zona horaria tal como aparece en la configuración del archivo (GMT-5 Hora del Este) en lugar de cómo lo devuelve getSpreadsheetTimeZone(). ¿Es posible?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible obtener la cadena de la zona horaria tal como aparece en la configuración del archivo ((GMT-5) Hora del Este) usando Google Apps Script.

    Primero, necesitas obtener la diferencia horaria con respecto a UTC, que se puede obtener utilizando el método getTimezoneOffset() del objeto Date.

    Luego, necesitas convertir la diferencia horaria a formato de cadena de la zona horaria ((GMT-5) Hora del Este) realizando algunas operaciones aritméticas y de cadena.

    Aquí tienes un ejemplo de código que muestra cómo puedes hacer esto:

    function getSpreadsheetTimeZoneString() {
      var spreadsheet = SpreadsheetApp.getActive();
      var timezone = spreadsheet.getSpreadsheetTimeZone();
      var date = new Date();
      var offset = date.getTimezoneOffset() / 60;
      var sign = offset >= 0 ? "-" : "+";
      var hour = Math.abs(Math.floor(offset));
      var minute = Math.abs(Math.round((offset % 1) * 60));
      var timezoneString = "(GMT" + sign + hour + ":" + (minute < 10 ? "0" : "") + minute + ") " + timezone.split("/")[1];
      return timezoneString;
    }
    

    Esta función primero obtiene la zona horaria del archivo utilizando getSpreadsheetTimeZone(), luego calcula la diferencia horaria para la zona horaria local del usuario utilizando el método getTimezoneOffset() del objeto Date.

    Luego, convierte la diferencia horaria al formato de cadena de la zona horaria, teniendo en cuenta el signo, la hora, los minutos y el nombre de la zona horaria. Se devuelve la cadena resultante.

    Puedes llamar a esta función desde tu script para obtener la cadena de la zona horaria tal como aparece en la configuración del archivo.

Comments are closed.