Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

449
Views
La zona horaria del activador de secuencias de comandos de Google Apps no cambiará

Estoy intentando configurar un activador en un proyecto de Google Apps Script que se ejecuta una vez al día a la misma hora. Para evitar problemas con el horario de verano, configuré la zona horaria de la hoja de cálculo en GMT-0 y la configuré como GMT-0 en la configuración del proyecto Apps Script. Sin embargo, esto es lo que se me presenta cuando creo un disparador:

La zona horaria que activa no cambiará desde (GMT-6)

GMT-6. Esta es mi zona horaria real. Vi que otras personas tenían problemas con esto, así que probé la solución de esta respuesta. No funcionó. Este es el código exacto que usé:

 function addTrigger() { // main() will be called weekly on Monday at 16:00 in the specified time zone var everyWeek = ScriptApp.newTrigger("setTrigger") .timeBased() .everyWeeks(1) .onWeekDay(ScriptApp.WeekDay.MONDAY) .inTimezone("Etc/UTC") .atHour(16) .create(); }

Todo lo que hizo fue crear un disparador a las 16:00 en GMT-6. Ignoró por completo el .inTimezone("Etc/UTC") .

Intenté usar una VPN para falsificar mi ubicación y ver si eso permite que la zona horaria cambie de GMT-6, no fue así. ¿Hay algún lugar en mi cuenta de Google del que se extraiga y obtenga GMT-6? Revisé mi Google Calandar y tenía GMT-0 como predeterminado, no hizo ninguna diferencia.

Cuando obtengo la fecha actual en un script, obtengo una fecha y hora en GMT-0. Entonces, básicamente hay un desplazamiento constante de 6 horas entre lo que hago en un guión y cuando funcionan los disparadores. Parece que todo sigue a GMT-0 excepto los disparadores que de alguna manera se aferran a GMT-6.

Por favor, que alguien me diga cómo puedo cambiar la zona horaria de los disparadores. He perdido demasiado tiempo en un tema tan estúpido.

Mi archivo appsscript.json tiene el siguiente aspecto:

 { "timeZone": "Etc/UTC", "dependencies": {}, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" }
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Todo lo que hizo fue crear un disparador a las 16:00 en GMT-6. Ignoró por completo el .inTimezone("Etc/UTC").

Creo que esto es inexacto. Después de la prueba, descubrí que se creó un disparador a las 16:00 en UTC. Aunque el tablero de la interfaz de usuario todavía puede mostrar GMT-6 el activador real se crea en la zona horaria especificada. Creo que esto es solo un error de interfaz de usuario.

about 4 years ago · Juan Pablo Isaza Report

0

Si el proyecto de secuencia de comandos está vinculado a una hoja de cálculo, puede ser más fácil usar la zona horaria de la hoja de cálculo, ya que es fácil de verificar y configurar en Archivo > Configuración de la hoja de cálculo. Para usar la zona horaria de la hoja de cálculo, reemplace 'Etc/UTC' con SpreadsheetApp.getActive().getSpreadsheetTimeZone() .

Para que el código sea más fácil de leer, configura la zona horaria como lo último antes .create() , así:

 function addTrigger() { const timezone = SpreadsheetApp.getActive().getSpreadsheetTimeZone(); const weeklyTrigger = ScriptApp.newTrigger('myFunctionToRunWeekly') .timeBased() .everyWeeks(1) .onWeekDay(ScriptApp.WeekDay.MONDAY) .atHour(16) .inTimezone(timezone) .create(); }
about 4 years ago · Juan Pablo Isaza Report

0

¿Puede ser la forma en que está formateando su disparador?

Esto es algo que haría al crear uno.

 function setUpTrigger() { ScriptApp.newTrigger('setTrigger') .timeBased() .everyWeeks(1) .onWeekDay(ScriptApp.WeekDay.MONDAY) .atHour(16) .nearMinute(0) .inTimezone('Etc/UTC') .create(); } function setTrigger() { //Your stuff that happens every monday at 1600 }

También tenga en cuenta que si usa atHour, la hora sería en cualquier momento entre las 1600 y las 1700.

Si incluye algo como nearMinute(0), también habrá un intervalo de 15 minutos +/- para que se ejecute el disparador.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!