La función DateTimeZone.From devuelve un valor de tipo datetimezone a partir del valor que se especifique.
DateTimeZone.From(
value as any,
optional culture as nullable text
) as nullable datetimezone
- value: valor a convertir a tipo datetimezone.
- culture: (opcional) cadena de texto con información sobre la configuración regional a aplicar.
Si el parámetro value toma el valor null, la función devuelve null también. Si value es un valor de tipo datetimezone, la función devuelve el mismo valor value.
Los tipos convertibles a date son los siguientes:
- text
- date, devolviéndose las 00:00:00 de la fecha indicada en el huso horario local
- datetime, en cuyo caso se devuelve la fecha y hora indicada en el huso horario local
- time, valores para los que se devuelve la hora indicada para la fecha del 30 de diciembre de 1899 en el huso horario local
- number, cuya parte entera se interpreta como el número de días a partir del 30 de diciembre de 1899 y cuya parte decimal se interpreta como fracción de un día, en el huso horario local
Si se intenta convertir un valor de otro tipo, la función devuelve un error.
Podemos convertir un texto conteniendo la representación de una fecha y hora a formato datetimezone con la siguiente expresión:
DateTimeZone.From("2020/07/06 08:55:30")
06/07/2020 8:55:30 +02:00
Vemos que se ha asignado el huso horario indicado por el reloj del sistema.
En el ejemplo anterior, la fecha representada en el texto no contenía información sobre la zona horaria. Si la tuviese, se interpretaría correctamente:
DateTimeZone.From("2020/07/06 08:55:30 +3:30")
06/07/2020 8:55:30 +03:30
Si la fecha representada en el texto no incluye ni parte correspondiente a la hora ni la correspondiente a la zona horaria, se asigna la hora 00:00:00 y el huso horario local.
DateTimeZone.From("2020/07/06")
06/07/2020 0:00:00 +02:00
En este ejemplo, el texto contiene información sobre el día y la zona horaria, pero no sobre la hora, asignándose las 00:00:00:
DateTimeZone.From("2020/07/06 +5:00")
06/07/2020 0:00:00 +05:00
Si el argumento es de tipo date, se asigna la hora 00:00:00 y el huso horario local:
DateTimeZone.From(#date(2020,7,6))
06/07/2020 0:00:00 +02:00
Si el argumento es un valor numérico, se asigna el día adecuado -sabiendo que al 0 le corresponde el 30 de diciembre de 1899- y el huso horario local:
DateTimeZone.From(0)
30/12/1899 0:00:00 +01:00