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.
Hay dos opciones disponibles para las columnas de fecha y hora.
- Comportamiento: si se deben ajustar los valores para las zonas horarias.
- Formato: si se muestra la parte de tiempo del valor.
Behavior
Dataverse almacena todos los valores de fecha y hora en la zona horaria UTC. Cuando su aplicación muestra valores o procesa valores ingresados por los usuarios, Dataverse y las aplicaciones basadas en modelos pueden ajustarse a la zona horaria del usuario con estas opciones de Comportamiento.
- Local del usuario: ajustar valores para la zona horaria del usuario. Este es el comportamiento predeterminado. Puede cambiar esto una vez a otro comportamiento.
- Independiente de la zona horaria: sin conversión de la zona horaria.
- Solo fecha:sin conversión de zona horaria. A diferencia de Zona horaria independiente, la porción de tiempo no se almacena.
La zona horaria del usuario está configurada 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 una porción de tiempo a menos que su comportamiento sea Sólo 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, con llamadas a la API web o mediante el uso de un control que tenga la porción de tiempo. Esto es diferente de Solo fecha Comportamiento, donde la porción de tiempo no se almacena en absoluto.
Directrices utilización
Use el comportamiento Zona horaria independiente cuando la información de zona horaria no es necesario, como la hora de registro en un hotel. Con esta selección, usuarios en todas las zonas horarias ven el mismo valor exacto de fecha y hora.
Use Solo fecha para casos cuando la información sobre la hora del día y de zona horaria no es necesaria, por ejemplo cumpleaños o aniversarios. Con esta selección, usuarios en todas las zonas horarias ven el mismo valor exacto de fecha.
Comportamiento Zona horaria independiente con el formato Solo fecha es prácticamente el mismo que el comportamiento 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 basada en modelo, la parte horaria se establecerá automáticamente en la 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 modelos 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., adelantando la hora una hora hasta 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 terminó el 5 de noviembreo de 2023 a las 2:00 a. m., retrasando la hora una hora hasta la 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 los obtienen 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 Usuario local, el resultado de la API del cliente debe interpretarse como un valor UTC. Usar Date.getUTCDate()
, Date.getUTCHours()
, etc. para trabajar con ello. Para obtener lo que ve el usuario, aplique getTimeZoneOffsetMinutes. No utilice Date.getDate()
, Date.getHours()
, etc. porque mostrarán el valor en la zona horaria del navegador.
Para el comportamiento independiente de la zona horaria y solo fecha , el resultado de la API del cliente debe interpretarse como un valor de la zona horaria del navegador. Usar Date.getDate()
, Date.getHours()
, etc. para trabajar con ello. No utilice Date.getUTCDate()
, Date.getUTCHours()
, etc. porque no tienes que ajustarte a ninguna zona horaria.
Cambiar comportamiento de local del usuario
A menos que el editor de una solución administrada lo impida, puede cambiar el comportamiento de las columnas de fecha personalizados existentes de Local del usuario a Solo fecha 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 modificar el comportamiento de una columna de fecha y hora existente, debe comprobar todas las dependencias de la columna, como reglas de negocio, flujos de trabajo, columnas calculadas o columnas consolidados, para asegurarse de que no hay problemas como resultado de modificar 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
Cuando importa una solución que contiene una columna de fecha con el comportamiento Local del usuario puede tener la opción de cambiar el comportamiento a Solo fecha o Independiente de la zona horaria.
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
Consulte 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
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).