Fechas en formato ISO y hora UTC


([N3] pacosatu) #1

Hola.

Estoy importando con el API fechas en formato ISO y hora UTC “yyyyMMssT00:00:00.000z”.
El caso es que no sé como guardarlas directamente en un campo de Velneo.

  • La instrucción new Date(“yyyyMMssT00:00:00.000z”) no me funciona en el API.
  • la función setField(campo, “yyyyMMssT00:00:00.000z”) no cambia la hora a la zona horaria Local.

¿Cómo lo hacéis de forma lo más óptima posible?

Saludos
Paco Satué


([N1] wikan) #2

Yo la verdad que para manejar fechas en javascript me he decantado por usar http://momentjs.com/

De todas formas creo que estás inicializando mal el objeto Date de javascript
Aquí tienes una explicación: http://stackoverflow.com/questions/3505693/difference-between-datedatestring-and-new-datedatestring

Aunque aquí si veo que usan el formato ISO: http://stackoverflow.com/questions/15517024/how-to-assume-local-time-zone-when-parsing-iso-8601-date-string

Por eso mismo creo que me decante por usar una librería externa.


([N3] pacosatu) #3

Hola Manuel.

Disculpa, he puesto mal el formato ISO, es en realidad “yyyy-MM-ssT00:00:00.000z”. Faltaban los guiones.

En javascript de mi explorador (Firefox) funciona perfectamente, pruébalo en new Date(“2016-01-20T19:10:00.000Z”).

Lo gordo es que en el API de Velneo no funciona y de esta forma no hay manera de obtener una fecha a partir de un String ISO.
Voy a ver que me cuenta Soporte sobre esta broma.

En cuanto a la función setField(campo, “yyyy-MM-ssT00:00:00.000z”) recurriendo al ancestral método de prueba y error y a falta de documentación, he probado a usar campos Tiempo en lugar de campos Fecha y entonces la conversión de la zona horaria local se realiza correctamente.

Por lo tanto, tenemos que usar campos de tipo Tiempo si queremos exportar/importar correctamente mediante el API y respetando la zona horaria. Yo uso casi siempre campos de tipo Fecha porque no hago uso de la Hora pero está claro que no es una buena idea si vamos a conectar con el mundo exteruor a través del API.

En cuanto a la librería http://momentjs.com/ parece cojonuda y la voy a incorporar a mi Framework ahora mismo. Gracias por el aporte.

Saludos
Paco Satué


([N1] Spicer) #4

Este… ¿cómo se hace para incorporar esa librería al framework? disculpad la ignorancia


([N1] wikan) #5

Es un ficharo js, adjuntando al proyecto y luego con include lo añades al script que necesites. A partir de ahí la documentación de la propia librería.


([N1] Spicer) #6

Espectacular…!
gracias!


([N3] pacosatu) #7

Hola Manuel.

Confirmarte que Soporte ha reconocido el “error del engine de JavaScript que usa Velneo” por el cual es incapaz de parsear las fechas en formato ISO “yyyy-MM-ssT00:00:00.000z” tal como lo define el Standard ECMA-262.
Se ha incluido en el programa de gestión de Incidencias.

Si queremos avanzar en la gestión de JSON para el desarrollo de los API REST y uso de XmlHttpRequest, es importante que solucionen este bug cuanto antes.

Saludos
Paco Satué