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

168
Views
Cómo compensar el horario de verano en el futuro para las descargas de calendarios de archivos ICS

Tengo una lista de plazos para varios proyectos. Una vez cada 3 meses, descargo los plazos de los próximos 3 meses como archivos ICS y los agrego a mi calendario. Debido a que solo los descargo una vez cada 3 meses, tengo un problema con respecto al horario de verano (DST). Aquí hay un ejemplo del problema:

  • En enero, descargo los próximos plazos para febrero, marzo y abril, estableciendo la hora a las 9:00 a. m. en sus respectivas fechas.
  • Llegado el 13 de marzo (el inicio del horario de verano), las fechas límite comienzan a aparecer como las 8:00 a. :00 AM, y los archivos no compensan eso.

He tenido problemas para determinar cuál sería la mejor manera de resolver este problema:

  • En la configuración del propio archivo ICS. Me imagino que si hubiera un lugar para hacer esto, sería aquí. Revisé la documentación de los archivos ICS y aún tengo que encontrar algo que compense automáticamente el horario de verano en el futuro.
  • En JavaScript en el front-end. Sé que JavaScript tiene la opción de establecer la zona horaria en una región ("América/Nueva_York") en lugar de una zona horaria, lo que ayuda a compensar automáticamente el horario de verano, pero no he podido hacer que esa característica funcione en un fecha en el futuro, ya que solo hace referencia a la hora actual.
  • En PostgreSQL en el back-end. He probado varias versiones de AT TIME ZONE sin éxito. Me encuentro con el mismo problema que tuve en JavaScript: establece la hora en la zona horaria especificada sin tener en cuenta si la fecha se verá afectada o no por el horario de verano en el futuro.

Actualizar la publicación para incluir más información

La información de la fecha límite ( PROJECT_NAME y DUE_DATE ) se extrae de una base de datos PostgreSQL. La fecha de vencimiento se almacena como un valor de FECHA como este: 05-MAR-22 .

Para agregar el tiempo, he tomado dos enfoques:

  1. Agregando el tiempo en PostgreSQL así:
 select ('06-JUN-2022'::date + time '9:00') at time zone 'America/New_York'
  1. Agregando el tiempo en JavaScript así:
 deadline.DUE_DATE = deadline.DUE_DATE.split("T"[0] += " 09:00:00";

Pero ninguno de los métodos me ha ayudado a resolver el problema de la zona horaria.

El microservicio de JavaScript establece los siguientes campos:

 BEGIN:VEVENT UID:[ UID ] SUMMARY:[ PROJECT_NAME ] DTSTAMP:[ DTSTAMP ] DTSTART:[ DTSTART ] BEGIN:VALARM ACTION:DISPLAY TRIGGER:[ TRIGGER ] END:VALARM DURATION:PT END:VEVENT

al que parece que le faltan algunos detalles importantes para configurar la zona horaria.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tiene la opción de incrustar información de zona horaria en el archivo ICS utilizando el parámetro TZID y el componente VTIMEZONE de los archivos ICS. El componente VTIMEZONE requiere agregar información sobre las reglas de DST al archivo, y cada TZID único debe tener un componente VTIMEZONE correspondiente. Puede usar tzurl.org que ha generado definiciones de VTIMEZONE para cada zona horaria. Para obtener más información sobre cómo hacer esto, puede consultar estas preguntas relacionadas:

  • ¿Cómo especificar la zona horaria en el archivo ics que funcionará de manera eficiente con Google, Outlook y Apple?
  • ¿Para qué se usa VTIMEZONE en icalendar? ¿Por qué no solo la hora UTC?

Me falta algo de conocimiento sobre los detalles de implementación específicos de Microsoft Outlook y el calendario de Apple, pero estoy bastante seguro de que tendrán en cuenta esa información relevante del archivo ICS.

Mire cómo está generando los archivos ICS con Javascript. Parece que la zona horaria se está configurando en la zona horaria anterior al horario de verano, lo que causará problemas al ver el evento después del cambio de horario de verano. De acuerdo con la especificación ics :

El uso de la hora local en un valor DATE-TIME o TIME sin el parámetro de propiedad "TZID" debe interpretarse como hora flotante, independientemente de la existencia de componentes de calendario "VTIMEZONE" en el objeto iCalendar.

Esto también puede indicar la posibilidad de que la zona horaria se esté configurando incorrectamente, porque si los componentes "TZID"/"VTIMEZONE" no se definieron, los eventos deben considerarse como "flotantes" o "la misma hora, minuto y segundo". independientemente de la zona horaria que se esté observando actualmente".

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!