Es extraño que a estás alturas tenga problemas con el pasaje de texto a fechas, pero es de loco sucede solo con algunas, en este caso con 1974-12-22 teniéndola en un campo Mysql como string y al querer pasarla a un campo datetime, siempre presenta problemas.
Por ejemplo con 1974-12-23 no sucede.
Trate de leerlo de entrada como un
Var dteFECNAC as DateTime
CASO 1:
dteFECNAC = larsRecordset.Column("FECNAC").DateTimeValue
CASO 2:
strFECNAC = larsRecordset.Column("FECNAC").StringValue.Trim.Left(10)
dteFECNAC = DateTime.FromString(strFECNAC)
// he probado distintas variantes del caso 2, com el FromString, etc.
Establezco en el Session.Opening el:
Session.LanguageCode = "es"
ya he probado otros, si simplemente cambio la fecha en la base de datos a 1974-12-23 funciona sin problemas, si vuelvo a 1974-12-22 ocurre el problema.
El Exception que me proporciona es: Parse error: date needs to be in the format of YYYY-MM-DD HH:MM or YYYY-MM-DD
Y la variable strFECNAC esta cargada con 1974-12-22
Agradezco toda la ayuda posible ya que el caso me tiene confundido.
XOJO 2022r4
Está alojado en Linux Debian 11 bajo Lifeboat 111, quizás @Tim_Parnell pueda guiarme.
Lo solucione haciendo lo siguiente:
Tomar solo la fecha yyyy-mm-dd (asi esta grabado en mysql con la hora 00:00:00), luego que la pase a texto, le agrego una hora cualquiera, para que luego si me lo permita pasar a fecha.
*En la base de datos esta guardada 1974-12-22 00:00:00 no debería ser problema porque con la mayoría trabaja bien , pero con esa da error, asi que si tuviera una hora no daría.
Var strFECNAC as String = larsRecordset.Column("FECNAC").StringValue.Trim.Left(10) + " 10:00"
Var dteFECNAC as DateTime = DateTime.FromString(strFECNAC)
Hola @AlbertoD , justo recién estaba publicando la solución temporal que encontré, es muy extraño que se comporte asi, puntualmente con esa fecha (y supongo algunas más).
He visto un caso por ahi que le pasaba algo similar y pero no la solución:
Por lo que se ve puede ser la región usada en la computadora (leyendo los otros mensajes).
¿Esto pasa en tu servidor web y también en tu computadora?
¿Qué región/idioma/formato tienes definido en el servidor/computadora?
Sin usar Mysql y sólo poner DateTime.FromString(“1974-12-22”) ¿también se presenta el problema?
Proyecto nuevo, agrego un Text con nombre txtFECNAC
en el Opening de la página le agrego el siguiente Código y al ejecutar aparece el error (no tomar en cuenta, el mensaje de Permiso que me aparece).
Sub Shown()
Var dteFECNAC as DateTime = DateTime.FromString("1974-12-22")
txtFECNAC.Text = dteFECNAC.SQLDate.ToText
End Sub
Me imagino que tu zona horaria está en Montevideo - Uruguay (o alguna otra de Uruguay), ¿puedes cambiar tu Mac a zona horaria Buenos Aires - Argentina y probar de nuevo?
Si @AlbertoD funcionó, MUCHAS GRACIAS!, un comportamiento muy extraño la verdad me estaba volviendo loco.
Solucionado en mi MAC, deje Idioma y Región Uruguay pero Fecha y Hora Argentina.
Supongo deba cambiar en el Lifeboat por supuesto, porque fue en Deploy que me di cuenta que se “caía”.
Ahora el problema es que en el Lifeboat no me aparece Buenos Aires y si Montevideo jaja! (@Tim_Parnell) y no se si aplicando “Sync with Mac” solucionará el problema.
En mi caso, tengo un servidor con hora de Nueva York, si le hago clic en ‘Sync with Mac’ la opción cambia a America - Chicago sin importar en dónde esté en ese diálogo (puedo estar seleccionando Asia - Dubai y se cambia.
¿Qué pasa si seleccionas ‘Sync with Mac’? No necesitas presionar OK hasta confirmar si es una opción válida.
Ok, voy a hacer la consulta a Tim ya que no veo opción de poner el server en UTC-3 (con Lifeboat) y no tengo idea de qué ciudad de la lista maneje el mismo horario.
Lo que puedes probar mientras tanto, es alguna de las ciudades de la lista (Lifeboat) que puedan ser igual a la de tu hora, pruebas en la mac si no se presenta el bug de Xojo y pones esa fecha en el servidor.
De todos modos siempre hay riesgo de que alguna otra fecha no funcione hasta que arreglen el bug, puedes ver mi comentario de la fecha 1977-05-22 y poner la hora de Roma en el reporte.
Tal vez prefieras usar tu código tipo .FromString(fecha + " 10:00") mientras sale nueva versión sin el bug.
Por el momento en la MAC no tengo problemas en tener Buenos Aires, pero al no poderlo subir, quizás tenga que terminar con el ajuste .FromString(fecha + " 10:00")
Veo que Lifeboat además de no figurar Buenos Aires, tampoco figura Brasilia (o por lo menos no estoy pudiendo encontrarlos, inclusos algunos otros en el uso horario -3).
Mauricio, me respondió mensaje Tim y dice que la lista de ciudades es lo que le entrega el servidor, si no muestra Buenos Aires entonces la opción es elegir otra ciudad con el mismo horario.
Tal vez tengas que probar en Xojo fechas en el rango que manejas para asegurar que no se tengan errores ya que como en Montevideo falla una fecha de 1974 con horario de Roma falla una de 1977 (estas no son las únicas que fallan).