Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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