Comportamento e formato della colonna Data e ora
In Microsoft Dataverse, puoi specificare in che modo i valori di data e ora vengono mostrati agli utenti e come vengono adattati ai fusi orari.
Sono disponibili due opzioni per le colonne di data e ora.
- Comportamento: se regolare i valori per i fusi orari.
- Formato: se visualizzare la parte temporale del valore.
Comportamento
Dataverse memorizza tutti i valori di data e ora nel fuso orario UTC. Quando la tua app visualizza valori o valori di elaborazione immessi dagli utenti, Dataverse e le app basate su modello possono adattarsi al fuso orario dell'utente con queste opzioni di Comportamento.
- Utente locale: regola i valori per il fuso orario degli utenti. Si tratta del comportamento predefinito. Se necessario, puoi cambiarlo una volta con un altro comportamento.
- Indipendente da fuso orario: nessuna conversione del fuso orario.
- Solo data: nessuna conversione del fuso orario. A differenza di Indipendente dal fuso orario, la parte temporale non viene archiviata.
Il fuso orario dell'utente è impostato in opzioni personali, non il fuso orario del sistema in Windows, Android, iOS o macOS. Comunque, il fuso orario del sistema potrebbe influire sugli script client che funzionano con le date JavaScript.
Formatta
Tutte le colonne di data e ora hanno una porzione temporale a meno che il comportamento non sia Solo data. Formato: determina se visualizzare la parte temporale del valore.
- Data e ora: visualizza la data e l'ora del valore.
- Solo data: visualizza la parte di data e solo il valore.
Nota
Gli utenti possono comunque modificare la parte temporale se Formato è Solo data. Ad esempio, con le chiamate API Web o utilizzando un controllo che include la parte temporale. Questo è diverso da Solo data Comportamento, dove la parte temporale non viene affatto memorizzata.
Linee guida per l'uso
Usa il comportamento Indipendente da fuso orario quando le informazioni sul fuso orario non sono richieste, ad esempio per gli orari del check-in in hotel. Con questa selezione, gli utenti in tutti i fusi orari vedranno esattamente lo stesso valore di data e ora.
Il comportamento Solo data è indicato quando le informazioni relative all'ora del giorno e al fuso orario non sono necessarie, ad esempio per compleanni o anniversari. Con questa selezione, gli utenti in tutti i fusi orari vedranno esattamente lo stesso valore di data.
Il comportamento Indipendente dal fuso orario con formato Solo data è praticamente lo stesso del comportamento Solo data. Utilizza il primo se non sei sicuro di aver bisogno della porzione temporale in futuro.
Importante
Evita il formato Solo data con il comportamento Locale utente. Gli utenti con fusi orari diversi potrebbero visualizzare una data diversa, cosa non prevista nella maggior parte degli scenari. Quando un utente imposta una data in un'app basata su modello, la parte dell'ora verrà automaticamente impostata sulla mezzanotte del suo fuso orario. Ciò potrebbe far sì che la data venga visualizzata un giorno prima o dopo per altri utenti.
Esempi
Valori visualizzati
Dataverse memorizza 2023-10-15T07:30:00Z
(o 2023-10-15
per il comportamento Solo data). Gli utenti nel fuso orario UTC-8 visualizzano questi valori nell'app basata sul modello o con una richiesta API Web per il valore formattato:
Comportamento | Formatta | Valore visualizzato |
---|---|---|
Locale utente | Data e ora | 14 ottobre 2023, 23:30 |
Locale utente | Solo data | 14 ottobre 2023 |
Indipendente dal fuso orario | Data e ora | 15 ottobre 2023, 7:30 |
Indipendente dal fuso orario | Solo data | 15 ottobre 2023 |
Solo data | - | 15 ottobre 2023 |
Inserisci i valori in un'app
Gli utenti nel fuso orario UTC-8 entrano October 14th, 2023, 11:30 pm
in un'app basata su modello. Il valore viene salvato in Dataverse come:
Comportamento | Formatta | Valore salvato in Dataverse |
---|---|---|
Locale utente | Data e ora | 2023-10-15T07:30:00Z |
Locale utente | Solo data | 2023-10-15T07:30:00Z |
Indipendente dal fuso orario | Data e ora | 2023-10-14T23:30:00Z |
Indipendente dal fuso orario | Solo data | 2023-10-14T23:30:00Z |
Solo data | - | 2023-14-10 |
Se l'utente inserisce solo la data October 14th, 2023
, si presuppone che la parte dell'ora sia 00:00.
Comportamento | Formatta | Valore salvato in Dataverse |
---|---|---|
Locale utente | Solo data | 2023-10-14T08:00:00Z |
Indipendente dal fuso orario | Solo data | 2023-10-14T00:00:00Z |
Solo data | - | 2023-14-10 |
Inserisci i valori non validi in un'app
Client diversi hanno modi diversi di gestire l'input non valido. Ad esempio, nel fuso orario del Pacifico, l'ora legale è iniziata il 12 marzo 2023 alle 2:00, spostando l'ora avanti di un'ora alle 3:00. L'orario compreso tra le 2:00 e le 3:00 di quel giorno non esiste. Quando gli utenti tentano di inserire un valore in tale intervallo di tempo, le app potrebbero eseguire una delle seguenti operazioni:
- Passare all'orario valido precedente o successivo.
- Ripristina l'ultimo valore noto.
- Mostra un messaggio di errore.
- Non mostrare orari compresi tra le 2:00 e le 3:00 nel selettore dell'orario, in modo che gli utenti non possano selezionarli in primo luogo.
Allo stesso modo, client diversi hanno modi diversi di gestire intervalli di tempo ripetuti. Ad esempio, nel fuso orario del Pacifico, l'ora legale è terminata il 5 novembre 2023 alle 2:00, spostando l'ora indietro di un'ora all'1:00. L'orario compreso tra le 1:00 e le 2:00 di quel giorno è ripetuto due volte. Un'ora come l'1:30 potrebbe riferirsi a entrambi i fusi orari. Se è necessario mostrare o inserire orari in tale intervallo in modo inequivocabile, è meglio passare temporaneamente a un fuso orario che non utilizza l'ora legale.
Ottieni valori grezzi con l'API Web
Dataverse memorizza 2023-10-15T07:30:00Z
(o 2023-10-15
per il comportamento Solo data). Gli utenti in tutti i fusi orari li ottengono con una richiesta API Web per il valore:
Comportamento | Formatta | Valore grezzo |
---|---|---|
Locale utente | Data e ora | 2023-10-15T07:30:00Z |
Locale utente | Solo data | 2023-10-15T07:30:00Z |
Indipendente dal fuso orario | Data e ora | 2023-10-15T07:30:00Z |
Indipendente dal fuso orario | Solo data | 2023-10-15T07:30:00Z |
Solo data | - | 2023-15-10 |
Ottieni valori con l'API client
Gli utenti nel fuso orario UTC-8 entrano October 14th, 2023, 11:30 pm
in un'app basata su modello. Le funzioni dell'API client come formContext.getAttribute(<column name>).getValue()
restituiscono il valore con le regolazioni del fuso orario applicate:
Comportamento | Formatta | JavaScript dateValue.toUTCString() |
---|---|---|
Locale utente | Data e ora | 15-10-2023 07:30 (UTC) |
Locale utente | Solo data | 15-10-2023 07:30 (UTC) |
Per il comportamento Indipendente dal fuso orario, il valore Data di JavaScript è nel fuso orario del browser:
Comportamento | Formatta | JavaScript dateValue.toString() |
---|---|---|
Indipendente dal fuso orario | Data e ora | 2023-10-14 23:30 (fuso orario del browser) |
Indipendente dal fuso orario | Solo data | 2023-10-14 23:30 (fuso orario del browser) |
I valori di data JavaScript hanno sempre una componente temporale. Ecco perché il comportamento Solo data ha una componente temporale pari a 00:00:
Comportamento | Formatta | JavaScript dateValue.toString() |
---|---|---|
Solo data | - | 2023-10-15 00:00 (fuso orario del browser) |
Nota
I valori della data JavaScript sono influenzati dal fuso orario del browser, che deriva dalle impostazioni del sistema operativo del dispositivo.
Per il comportamento Utente locale, il risultato dell'API client deve essere interpretato come un valore UTC. Uso di Date.getUTCDate()
, Date.getUTCHours()
per il lavoro. Per ottenere ciò che vede l'utente, applica getTimeZoneOffsetMinutes. Non utilizzare Date.getDate()
, Date.getHours()
perché mostreranno il valore nel fuso orario del browser.
Per il comportamento Indipendente dal fuso orario e Solo data, il risultato dell'API client deve essere interpretato come un valore nel fuso orario del browser. Uso di Date.getDate()
, Date.getHours()
per il lavoro. Non utilizzare Date.getUTCDate()
, Date.getUTCHours()
e così via perché non è necessario adattarsi ad alcun fuso orario.
Modificare il comportamento dell'utente locale
A meno che un autore di una soluzione gestita lo impedisca, puoi modificare il comportamento di colonne di date personalizzate esistenti da Utente locale a Solo data o Indipendente da fuso orario. Sarà necessario eseguire questa modifica solo una volta.
La modifica del comportamento della colonna riguarda i valori di colonna che vengono aggiunti o modificati dopo che il comportamento della colonna è stato modificato. I valori di colonna esistenti restano nel database nel formato di fuso orario UTC. Per modificare il comportamento dei valori delle colonne esistenti da UTC a Solo data, potresti aver bisogno dell'aiuto di uno sviluppatore per convertire il comportamento della data esistente e valori temporali nel database.
Avviso
Prima di modificare il comportamento di una colonna esistente di data e ora, devi esaminare tutte le dipendenze della colonna, ad esempio le regole di business, i flussi di lavoro e le colonne calcolate o di rollup, per assicurarti che non si verifichino problemi a seguito della modifica del comportamento. Dopo aver modificato il comportamento di una colonna di data e ora, devi aprire ogni regola di business, flusso di lavoro, colonna calcolata e colonna di rollup che dipende dalla colonna modificata, esaminare le informazioni e salvarle in modo da garantire che vengano utilizzati il comportamento e il valore della colonna di data e ora più recenti.
Modificare il comportamento durante l'importazione di una soluzione
Quando importi una soluzione che contiene una colonna Data con il comportamento Utente locale, puoi modificare il comportamento in Solo data o Indipendente da fuso orario.
Nota
Puoi modificare il comportamento di una colonna Solo data o Data e ora gestita esistente solo se sei l'editore. Per poter apportare una modifica a questi campi è necessario effettuare un aggiornamento alla soluzione che ha aggiunto la colonna Solo data o Data e ora. Ulteriori informazioni: Aggiornare o eseguire l'upgrade di una soluzione
Impedire il cambiamento di comportamento
Se distribuisci una colonna data personalizzata in una soluzione gestita, puoi impedire agli utenti che utilizzano la soluzione di modificare il comportamento impostando la proprietà gestita CanChangeDateTimeBehavior su Falso. Ulteriori informazioni: Impostare le proprietà gestite per le colonne
Gli operatori di query di data e ora non sono supportati per il comportamento Solo data
I seguenti operatori di query relativi a data e ora non sono validi per il comportamento Solo data. Viene generato un errore di eccezione di operatore non valido quando uno di questi operatori viene utilizzato nella query.
- Oltre X minuti fa
- Oltre X ore fa
- Ultime X ore
- Prossime X ore
Vedi anche
Risolvere i problemi relativi a data e ora nelle app basate su modello
Creare e modificare colonne
Definire colonne calcolate per automatizzare i calcoli manuali
Proprietà gestite per le colonne
Proprietà gestite
Blog: Utilizzo dei fusi orari in Dataverse
Configurare il comportamento e il formato della colonna data e ora usando codice
Nota
Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)
Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).