Comportement et format de la colonne Date et heure

Dans Microsoft Dataverse, vous pouvez spécifier comment les valeurs de la date et de l’heure sont affichées aux utilisateurs et comment elles sont ajustées en fonction des fuseaux horaires.

Deux options sont disponibles pour les colonnes de date et heure.

  • Comportement : s’il faut ajuster les valeurs pour les fuseaux horaires.
  • Format : s’il faut afficher la partie temporelle de la valeur.

Behavior

Dataverse stocke toutes les valeurs de date et heure dans le fuseau horaire UTC. Lorsque votre application affiche des valeurs ou traite des valeurs saisies par les utilisateurs, les applications Dataverse et pilotées par un modèle peuvent s’adapter au fuseau horaire de l’utilisateur grâce à ces options Comportement.

  • Heure locale de l’utilisateur : adapte les valeurs au fuseau horaire de l’utilisateur. C’est le paramétrage par défaut. Vous pouvez changer ce paramètre une fois pour un autre comportement.
  • Sans fuseau horaire : aucune conversion de fuseau horaire.
  • Date uniquement : aucune conversion de fuseau horaire Contrairement au paramètre Sans fuseau horaire, la partie temporelle n’est pas stockée.

Le fuseau horaire de l’utilisateur est défini dans options personnelles, et non dans la section fuseau horaire du système sous Windows, Android, iOS, ou macOS. Cependant, le fuseau horaire du système peut affecter les scripts clients qui travaillent avec des dates JavaScript.

Mettre en forme

Toutes les colonnes de date et heure comportent une partie temporelle, sauf si son comportement est Date uniquement. Format : détermine s’il faut afficher la partie temporelle de la valeur.

  • Date et heure : affiche la date et l’heure de la valeur.
  • Date uniquement : affiche uniquement la partie date de la valeur.

Notes

Les utilisateurs peuvent toujours modifier la partie horaire si le Format est Date uniquement. Par exemple, avec des appels d’API web ou en utilisant un contrôle comportant la partie horaire. Ceci est différent du Comportement Date uniquement, où la partie temporelle n’est pas du tout stockée.

Instructions d’utilisation

Utilisez le comportement Sans fuseau horaire lorsque les informations sur le fuseau horaire ne sont pas nécessaires, par exemple pour les heures d’arrivée dans les hôtels. Avec cette sélection, les utilisateurs de tous les fuseaux horaires voient la même date et la même heure.

Utilisez le comportement Date uniquement si les informations relatives à l’heure du jour et au fuseau horaire ne sont pas requis, comme les anniversaires. Avec cette sélection, les utilisateurs de tous les fuseaux horaires voient exactement la même valeur de date.

Le comportement Sans fuseau horaire associé au format Date uniquement est pratiquement identique au comportement Date uniquement. Utilisez le premier si vous n’êtes pas sûr d’avoir besoin de la portion horaire à l’avenir.

Important

Évitez le format Date uniquement avec comportement local de l’utilisateur . Les utilisateurs de différents fuseaux horaires peuvent voir une date différente, ce qui n’est pas prévu dans la plupart des scénarios. Lorsqu’un utilisateur définit une date dans une application basée sur un modèle, la partie horaire sera automatiquement définie sur minuit de son fuseau horaire. Cela pourrait faire apparaître la date un jour plus tôt ou plus tard pour les autres utilisateurs.

Examples

Afficher les valeurs

Dataverse stocke 2023-10-15T07:30:00Z (ou 2023-10-15 pour le comportement Date uniquement). Les utilisateurs du fuseau horaire UTC-8 les voient dans l’application pilotée par modèle ou avec une requête API Web pour la valeur formatée :

Behavior Mettre en forme Afficher la valeur
Heure locale de l’utilisateur Date et heure 14 octobre 2023, 23h30
Heure locale de l’utilisateur Date uniquement 14 octobre 2023
Sans fuseau horaire Date et heure 15 octobre 2023, 7h30
Sans fuseau horaire Date uniquement 15 octobre 2023
Date uniquement - 15 octobre 2023

Saisir des valeurs dans une application

Les utilisateurs du fuseau horaire UTC-8 entrent October 14th, 2023, 11:30 pm dans une application pilotée par modèle. La valeur est enregistrée dans Dataverse comme suit :

Behavior Mettre en forme Valeur enregistrée dans Dataverse
Heure locale de l’utilisateur Date et heure 2023-10-15T07:30:00Z
Heure locale de l’utilisateur Date uniquement 2023-10-15T07:30:00Z
Sans fuseau horaire Date et heure 2023-10-14T23:30:00Z
Sans fuseau horaire Date uniquement 2023-10-14T23:30:00Z
Date uniquement - 2023-10-14

Si l’utilisateur saisit uniquement la date October 14th, 2023, la partie horaire est supposée être minuit.

Behavior Mettre en forme Valeur enregistrée dans Dataverse
Heure locale de l’utilisateur Date uniquement 2023-10-14T08:00:00Z
Sans fuseau horaire Date uniquement 2023-10-14T00:00:00Z
Date uniquement - 2023-10-14

Saisir des valeurs non valides dans une application

Les clients n’ont pas tous la même façon de traiter les entrées non valides. Par exemple, dans le fuseau horaire du Pacifique, l’heure d’été a commencé le 12 mars 2023 à 2 heures du matin, avançant l’heure d’une heure à 3 heures du matin. Le temps entre 2h00 et 3h00 du matin ce jour-là n’existe pas. Lorsque les utilisateurs essaient de saisir une valeur dans cette plage de temps, les applications peuvent faire l’une des choses suivantes :

  • Passer à l’heure précédente ou suivante.
  • Revenir à la dernière valeur connue.
  • Afficher un message d’erreur.
  • Ne pas afficher les heures entre 2h00 et 3h00 du matin dans le sélecteur de temps, afin que les utilisateurs ne puissent pas les sélectionner en premier lieu.

De même, différents clients ont différentes manières de gérer des plages de temps répétées. Par exemple, dans le fuseau horaire du Pacifique, l’heure d’été a pris fin le 5 novembre 2023 à 2 heures du matin, reculant l’heure d’une heure à 1 heure du matin. Le temps entre 1 h 00 et 2 h 00 du matin ce jour-là est répété deux fois. Une heure comme 1 h 30 du matin peut faire référence à l’un ou l’autre fuseau horaire. Si vous devez afficher ou saisir sans ambiguïté des heures dans cette plage, il est préférable de passer temporairement à un fuseau horaire qui n’utilise pas l’heure d’été.

Obtenir des valeurs brutes avec l’API web

Dataverse stocke 2023-10-15T07:30:00Z (ou 2023-10-15 pour le comportement Date uniquement). Les utilisateurs de tous les fuseaux horaires les obtiennent avec une requête API Web pour la valeur :

Behavior Mettre en forme Valeur brute
Heure locale de l’utilisateur Date et heure 2023-10-15T07:30:00Z
Heure locale de l’utilisateur Date uniquement 2023-10-15T07:30:00Z
Sans fuseau horaire Date et heure 2023-10-15T07:30:00Z
Sans fuseau horaire Date uniquement 2023-10-15T07:30:00Z
Date uniquement - 2023-10-15

Obtenir des valeurs avec l’API client

Les utilisateurs du fuseau horaire UTC-8 entrent October 14th, 2023, 11:30 pm dans une application pilotée par modèle. Les fonctions d’API client comme formContext.getAttribute(<column name>).getValue() renvoient la valeur avec les ajustements de fuseau horaire appliqués :

Behavior Mettre en forme JavaScript dateValue.toUTCString()
Heure locale de l’utilisateur Date et heure 2023-10-15 07:30 (UTC)
Heure locale de l’utilisateur Date uniquement 2023-10-15 07:30 (UTC)

Pour un comportement Sans fuseau horaire, la valeur de date JavaScript correspond au fuseau horaire du navigateur :

Behavior Mettre en forme JavaScript dateValue.toString()
Sans fuseau horaire Date et heure 2023-10-14 23h30 (fuseau horaire du navigateur)
Sans fuseau horaire Date uniquement 2023-10-14 23h30 (fuseau horaire du navigateur)

Les valeurs de date JavaScript ont toujours une composante temporelle. C’est pourquoi le comportement Date uniquement a une composante horaire de minuit :

Behavior Mettre en forme JavaScript dateValue.toString()
Date uniquement - 2023-10-15 00:00 (fuseau horaire du navigateur)

Notes

Les valeurs de date JavaScript sont affectées par le fuseau horaire du navigateur, qui provient des paramètres du système d’exploitation de l’appareil.

Pour le comportement Heure locale de l’utilisateur, le résultat de l’API client doit être interprété comme une valeur UTC. Utilisez Date.getUTCDate(), Date.getUTCHours(), etc. pour l’utiliser. Pour obtenir le résultat que voit l’utilisateur, appliquez getTimeZoneOffsetMinutes. N’utilisez pas Date.getDate(), Date.getHours(), etc. car ils afficheront la valeur dans le fuseau horaire du navigateur.

Pour un comportement Sans fuseau horaire et Date uniquement, le résultat de l’API client doit être interprété comme une valeur dans le fuseau horaire du navigateur. Utilisez Date.getDate(), Date.getHours(), etc. pour l’utiliser. N’utilisez pas Date.getUTCDate(), Date.getUTCHours(), etc., car vous n’avez pas à tenir compte des fuseaux horaires.

Modifier le comportement de l’heure locale de l’utilisateur

À moins que l’éditeur d’une solution gérée l’empêche, vous pouvez modifier le comportement des colonnes de date personnalisées existantes d’Heure locale de l’utilisateur à Date uniquement ou Sans fuseau horaire. Cette modification n’est effectuée qu’une seule fois.

Modifier le comportement de la colonne affecte les valeurs de colonne qui sont ajoutées ou modifiées après la modification du comportement de colonne. Les valeurs de colonnes existantes sont conservées dans la base de données au format fuseau horaire UTC. Pour modifier le comportement des valeurs de colonne existantes de UTC en Date uniquement, vous pouvez avoir besoin de l’aide d’un développeur pour convertir le comportement des valeurs de date et d’heure existantes dans la base de données.

Avertissement

Avant de modifier le comportement d’un champ de date et heure existant, vous devez examiner toutes les dépendances de la colonne, telles que les règles métier, les workflows et les colonnes calculées ou cumulatives, pour éviter de générer des problèmes. Après avoir modifié le comportement d’une colonne de date et heure, ouvrez chaque enregistrement de règle métier, de workflow, de colonne calculée et de colonne cumulative qui dépend de la colonne que vous avez modifié, vous devez lire les informations et les enregistrer pour garantir que le dernier comportement de la colonne de date et heure et la dernière valeur sont utilisés.

Modification du comportement pendant l’importation d’une solution

Lorsque vous importez une solution qui contient une colonne Date avec le comportement Heure locale de l’utilisateur, vous pouvez changer le comportement en Date uniquement ou Sans fuseau horaire.

Notes

Vous ne pouvez modifier le comportement d’une colonne Date uniquement ou Date et heure gérée existante que si vous en êtes l’éditeur. Pour modifier ces champs, il faut mettre à jour la solution qui a ajouté la colonne Date uniquement ou Date et heure. Pour plus d’informations, voir : Mettre à niveau ou mettre à jour une solution

Empêcher la modification du comportement

Si vous distribuez une colonne de date personnalisé dans une solution gérée, empêchez les utilisateurs de votre solution de modifier le comportement en définissant la propriété gérée CanChangeDateTimeBehavior sur False. Informations complémentaires : Définir les propriétés gérées des colonnes

Opérateurs de requête de date et d’heure non pris en charge pour le comportement Date uniquement

Les opérateurs de requête liés aux dates et heures suivants ne sont pas valides pour le comportement Date uniquement. Une erreur d’exception d’opérateur non valide est lancée lorsqu’un de ces opérateurs est utilisé dans la requête.

  • Plus de X minutes
  • Plus de X heures
  • X dernières heures
  • X prochaines heures

Voir aussi

Résoudre les problèmes de date et d’heure dans les applications pilotées par modèle
Créer et modifier des colonnes
Définir des colonnes calculées pour automatiser les calculs manuels
Propriétés gérées des colonnes
Propriétés gérées
Blog : Utilisation des fuseaux horaires dans Dataverse
Configurer le comportement et le format de la colonne de date et d’heure à l’aide de code

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).