Compartir a través de


Comportamiento y formato de la columna de fecha y hora

En Microsoft Dataverse, puede especificar cómo se muestran los valores de fecha y hora a los usuarios y cómo se ajustan a las zonas horarias.

Además de las propiedades estándar disponibles con la mayoría de las columnas, las columnas de fecha y hora tienen dos propiedades adicionales:

  • Ajuste de zona horaria: indica si se deben ajustar los valores de las zonas horarias.
  • Formato: si se muestra la parte de tiempo del valor.

Ajuste de zona horaria

Dataverse almacena todos los valores de fecha y hora en la zona horaria UTC. Cuando su aplicación muestra valores o procesa valores introducidos por los usuarios, Dataverse y las aplicaciones basadas en modelo pueden ajustarse a la zona horaria del usuario con estas opciones de Comportamiento.

  • Local del usuario: ajuste valores para la zona horaria del usuario. Este es el comportamiento predeterminado para el formato Fecha y hora. Puede cambiar esto una vez a otro comportamiento.
  • Independiente de la zona horaria: sin conversión de la zona horaria. Este es el comportamiento predeterminado para el formato Solo fecha.

Establezca la zona horaria del usuario en opciones personales, no la zona horaria del sistema en Windows, Android, iOS o macOS. Sin embargo, la zona horaria del sistema puede afectar los scripts del cliente que funcionan con fechas de JavaScript.

Format

Todas las columnas de fecha y hora tienen un componente de hora a menos que su comportamiento esté configurado como Solo fecha. Formato: determina si se muestra la parte de tiempo del valor.

  • Fecha y hora: muestra la fecha y hora del valor.
  • Solo fecha: muestra solo la porción de fecha del valor.

Nota

Los usuarios aún pueden cambiar la porción de tiempo si el Formato es Sólo fecha. Por ejemplo, mediante llamadas API Web o mediante un control que tenga el componente de tiempo. Este comportamiento es diferente del comportamiento de solo fecha, donde la parte de hora no se almacena en absoluto.

Directrices utilización

Use zona horaria independiente cuando no se requiera información de zona horaria, como las horas de registro de entrada del hotel. Con esta selección, usuarios en todas las zonas horarias ven el mismo valor exacto de fecha y hora.

Usa solo fecha cuando no se requiere información sobre la hora del día y la zona horaria, como en el caso de cumpleaños o aniversarios. Con esta selección, usuarios en todas las zonas horarias ven el mismo valor exacto de fecha.

Zona horaria independiente con Solo fecha es prácticamente lo mismo que establecer la columna como Solo fecha. Utilice el primero si no está seguro de si necesitará esa porción de tiempo en el futuro.

Importante

Evite el formato Solo fecha con el comportamiento Usuario local. Los usuarios en diferentes zonas horarias pueden ver una fecha diferente, lo que no es lo previsto en la mayoría de los escenarios. Cuando un usuario establece una fecha en una aplicación controlada por modelos, la parte de hora se establece automáticamente en medianoche de su zona horaria. Esto podría hacer que la fecha aparezca un día antes o después para otros usuarios.

Ejemplos

Valores para mostrar

Dataverse almacena 2023-10-15T07:30:00Z (o 2023-10-15 para el comportamiento Solo fecha). Los usuarios en la zona horaria UTC-8 ven esto en la aplicación basada en modelo o con una solicitud de API web para el valor formateado:

Behavior Format Valor para mostrar
Local del usuario Fecha y hora 14 de octubre de 2023, 23:30 horas
Local del usuario Solo fecha 14 de octubre de 2023
Independiente de la zona horaria Fecha y hora 15 de octubre de 2023, 7:30 am
Independiente de la zona horaria Solo fecha 15 de octubre de 2023
Solo fecha - 15 de octubre de 2023

Introducir valores en una aplicación

Los usuarios en la zona horaria UTC-8 ingresan October 14th, 2023, 11:30 pm en una aplicación basada en modelos. El valor se guarda en Dataverse como:

Behavior Format Valor guardado en Dataverse
Local del usuario Fecha y hora 2023-10-15T07:30:00Z
Local del usuario Solo fecha 2023-10-15T07:30:00Z
Independiente de la zona horaria Fecha y hora 2023-10-14T23:30:00Z
Independiente de la zona horaria Solo fecha 2023-10-14T23:30:00Z
Solo fecha - 2023-10-14

Si el usuario ingresa solo la fecha October 14th, 2023, se supone que la parte horaria es las 12:00 a.m.

Behavior Format Valor guardado en Dataverse
Local del usuario Solo fecha 2023-10-14T08:00:00Z
Independiente de la zona horaria Solo fecha 2023-10-14T00:00:00Z
Solo fecha - 2023-10-14

Introducir valores inválidos en una aplicación

Diferentes clientes tienen diferentes formas de manejar entradas no válidas. Por ejemplo, en la zona horaria del Pacífico, el horario de verano comenzó el 12 de marzo de 2023 a las 2:00 a.m., pasando la hora de una hora a las 3:00 a. m. El horario entre las 2:00 a. m. y las 3:00 a. m. de ese día no existe. Cuando los usuarios intentan ingresar un valor en ese rango de tiempo, las aplicaciones pueden realizar una de las siguientes acciones:

  • Cambiar a la hora válida anterior o siguiente.
  • Revertir al último valor conocido.
  • Mostrar un mensaje de error.
  • No muestre horas entre las 2:00 a. m. y las 3:00 a. m. en el selector de horas, para que los usuarios no puedan seleccionarlas en primer lugar.

De manera similar, diferentes clientes tienen diferentes formas de manejar rangos de tiempo repetidos. Por ejemplo, en la zona horaria del Pacífico, el horario de verano finalizó el 5 de noviembre de 2023 a las 2:00 am, moviendo la hora hacia atrás una hora a las 1:00 a. m. El horario entre las 1:00 a. m. y las 2:00 a. m. de ese se repite dos veces. Una hora como la 1:30 a. m. podría referirse a cualquiera de las zonas horarias. Si necesita mostrar o ingresar horas inequívocamente en ese rango, es mejor cambiar temporalmente a una zona horaria que no utilice el horario de verano.

Obtenga valores sin procesar con Web API

Dataverse almacena 2023-10-15T07:30:00Z (o 2023-10-15 para el comportamiento Solo fecha). Los usuarios de todas las zonas horarias obtienen estos valores con una solicitud de API web para el valor:

Behavior Format Valor bruto
Local del usuario Fecha y hora 2023-10-15T07:30:00Z
Local del usuario Solo fecha 2023-10-15T07:30:00Z
Independiente de la zona horaria Fecha y hora 2023-10-15T07:30:00Z
Independiente de la zona horaria Solo fecha 2023-10-15T07:30:00Z
Solo fecha - 2023-10-15

Obtener valores con API cliente

Los usuarios en la zona horaria UTC-8 ingresan October 14th, 2023, 11:30 pm en una aplicación basada en modelos. La API de cliente funciona como formContext.getAttribute(<column name>).getValue() y devuelve el valor con los ajustes de zona horaria aplicados:

Behavior Format JavaScript dateValue.toUTCString()
Local del usuario Fecha y hora 2023-10-15 07:30 (UTC)
Local del usuario Solo fecha 2023-10-15 07:30 (UTC)

Para el comportamiento independiente de la zona horaria, el valor de fecha de JavaScript está en la zona horaria del navegador:

Behavior Format JavaScript dateValue.toString()
Independiente de la zona horaria Fecha y hora 2023-10-14 23:30 (zona horaria del navegador)
Independiente de la zona horaria Solo fecha 2023-10-14 23:30 (zona horaria del navegador)

Los valores de fecha de JavaScript siempre tienen un componente de tiempo. Es por eso que el comportamiento Solo fecha tiene un componente de tiempo de 12:00 a. m.:

Behavior Format JavaScript dateValue.toString()
Solo fecha - 2023-10-15 00:00 (zona horaria del navegador)

Nota

Los valores de fecha de JavaScript se ven afectados por la zona horaria del navegador, que proviene de la configuración del sistema operativo del dispositivo.

Para el comportamiento local del usuario , interprete el resultado de la API de cliente como un valor UTC. Use Date.getUTCDate() o Date.getUTCHours() para trabajar con él. Para obtener lo que ve el usuario, aplique getTimeZoneOffsetMinutes. No use Date.getDate() o Date.getHours() porque estas funciones muestran el valor en la zona horaria del explorador.

En el caso del comportamiento independiente de la zona horaria y de solo fecha , interprete el resultado de la API de cliente como un valor en la zona horaria del explorador. Use Date.getDate() o Date.getHours() para trabajar con él. No uses Date.getUTCDate() o Date.getUTCHours() porque no tienes que ajustar para zonas horarias.

Cambiar comportamiento de local del usuario

A menos que el publicador de una solución administrada impida cambiar el comportamiento local, puede cambiar el comportamiento de las columnas de fecha personalizadas existentes de User local a Date only o Independiente de la zona horaria. Se trata de un cambio de una sola vez.

Cambiar el comportamiento de la columna afecta a los valores de columna que se agregan o modificaron después de cambiar el comportamiento de la columna. Los valores de columna existentes permanecen en la base de datos con el formato de la zona horaria UTC. Para cambiar el comportamiento de los valores de columna existentes de UTC a Solo fecha, es posible que necesite la ayuda de un desarrollador para convertir el comportamiento de la fecha existente. y valores de tiempo en la base de datos.

Advertencia

Antes de cambiar el comportamiento de una columna de fecha y hora existente, revise todas las dependencias de la columna, como reglas de negocios, flujos de trabajo, columnas calculadas o columnas de acumulación, para asegurarse de que no haya ningún problema como resultado de cambiar el comportamiento. Después de modificar el comportamiento de una columna de fecha y hora, debe abrir cada regla de negocio, flujo de trabajo, columna calculada y columna consolidada dependiente del campo que cambió, revisar la información y guardarla, para asegurarse de que se usarán el comportamiento y el valor más recientes de la columna de fecha y hora.

Cambiar comportamiento durante la importación de una solución

Al importar una solución que contenga una columna Date con User local, puede cambiar el comportamiento a Date only o Time zone independiente.

Nota

Solo puede cambiar el comportamiento de una columna administrada Solo fecha o Fecha y hora si es el editor. Para realizar un cambio en estos campos, se debe realizar una actualización en la solución que agregó Solo fecha o Fecha y hora columna. Más información: Actualizar una solución

Evitar cambio de comportamiento

Si va a distribuir una columna de fecha personalizada en una solución administrada, puede impedir que las personas que usan la solución cambien el comportamiento configurando la propiedad administrada CanChangeDateTimeBehavior a False. Más información: Establecer propiedades administradas para columnas

Operadores de consulta de fecha y hora no admitidos en el comportamiento Solo fecha

Los siguientes operadores de consulta relacionados con fecha y hora no son válidos para el comportamiento Solo fecha. Se genera un error de excepción de operador no válido cuando uno de estos operadores se usa en la consulta.

  • Más antiguo de X minutos
  • Anterior a X horas
  • Últimas X horas
  • Próximas X horas

Vea también

Solucionar problemas de fecha y hora en aplicaciones basadas en modelos
Crear y editar columnas
Definir columnas calculadas para automatizar los cálculos manuales
Propiedades administradas de columna
Propiedades administradas
Blog: Trabajar con zonas horarias en Dataverse
Configurar el comportamiento y el formato de la columna de fecha y hora mediante código