Aggiungere le date e le ore e formattarle per visualizzare il livello di dettaglio corretto o per riflettere le impostazioni locali. Calcolare la quantità di tempo tra due date o calcolare una data che precede o segue di un determinato periodo di tempo una data specificata. Convertire le date in valori separati per giorni, mesi e anni o viceversa e convertire le ore in valori separati per ore, minuti e secondi o viceversa.

Ad esempio, aggiungere dati degli utenti relativi a transazioni azionarie o riunioni con i clienti, dati da un'origine esterna o dati da un'altra app creata in PowerApps. Se i dati includono ore con precisione fino al millisecondo, arrotondarle al minuto per motivi di semplicità. Calcolare il numero di giorni rimanenti che precedono un'attività cardine principale. Se si vuole pianificare riunioni con i clienti ogni cinque giorni, calcolare le date automaticamente. Se la data 10 maggio 1985 è archiviata in campi separati per giorno, mese e anno, consolidare i campi in un singolo valore. Viceversa, suddividere ogni data in valori separati se l'app li gestisce separatamente.

Prerequisiti

  • Iscriversi a PowerApps, installarlo, aprirlo e quindi accedervi fornendo le stesse credenziali utilizzate per l’iscrizione.
  • Creare un'app o aprire un'app esistente in PowerApps.
  • Informazioni su come configurare un controllo in PowerApps.

Visualizzare il testo in un controllo Etichetta

Visualizzare il testo in un controllo Etichetta impostando il valore della relativa proprietà Text. Impostare questa proprietà digitando direttamente nel controllo o digitando un'espressione nella barra della formula.

  • Se si digita direttamente nel controllo, viene visualizzato esattamente ciò che viene digitato.
  • Se si digita un'espressione nella barra della formula, il controllo visualizza il risultato dell'espressione.

Di seguito sono riportati alcuni esempi.

  1. Aggiungere un controllo Etichetta denominato ShowText e impostarne la proprietà Text sulla formula seguente:
    Now()

    Se il computer è impostato sulle impostazioni locali "en-us", la data e l'ora corrente vengono visualizzate nel formato:
    mm/dd/yyyy hh:mm AM/PM

    Se il computer è impostato sulle impostazioni locali "fr-fr", la data e l'ora corrente vengono visualizzate nel formato:
    dd/mm/yyyy hh:mm AM/PM

  2. Impostare la proprietà Text di ShowText sulla formula seguente:
    DateDiff(Today(), DateValue("01/01/2020"))

    Numero di giorni tra oggi e il 1° gennaio 2020

    Il controllo mostra il numero di giorni da oggi al 1° gennaio 2020 usando le funzioni seguenti:

    • DateDiff che calcola il numero di giorni, trimestri o anni tra le due date.
    • Today che calcola il giorno corrente come valore.
    • DateValue che converte una stringa letterale, come illustrato tra virgolette, in un valore in cui è possibile eseguire i calcoli.
  3. Aggiungere un controllo Input di testo denominato BirthDate e spostarlo in ShowText.

  4. In BirthDate digitare il mese e il giorno di nascita (ad esempio, 05/18).

  5. Impostare la proprietà Text di ShowText sulla formula seguente:
    DateDiff(Today(), DateValue(BirthDate.Text))

    Numero di giorni tra oggi e la data di nascita

    ShowText mostra il numero di giorni tra oggi e la data digitata in BirthDate. Se la data di nascita è già trascorsa nell'anno in corso, ShowText visualizza un valore negativo.

Formattare date e ore usando DateTimeValue

Convertire date e ore da stringhe di testo in valori che è possibile formattare in modi diversi e usare nei calcoli. Specificare il formato usando le opzioni predefinite e personalizzate.

Nota:

Le funzioni DateTimeValue e DateValue possono convertire le date in questi formati in valori:
- MM/DD/YYYY
- DD/MM/YYYY
- DD Mon YYYY
- Month DD, YYYY

  1. Aggiungere un controllo Input di testo denominato ArrivalDateTime e digitare una data e un'ora nel formato seguente:
    5/10/85 6:15 AM

  2. Aggiungere un controllo Etichetta denominato ShowDate e impostarne la proprietà Text sulla formula seguente:
    DateTimeValue(ArrivalDateTime.Text)

    Convertire una data/ora da testo a valore

    ShowDate visualizza le informazioni digitate ma convertite da testo a valore e formattate in modo diverso. Ad esempio, l'anno viene visualizzato come quattro cifre anziché due.

  3. Impostare la proprietà Text di ShowDate sulla formula seguente:
    DateTimeValue(ArrivalDateTime.Text, "fr")

    Visualizzare un valore data/ora nel formato francese

    ShowDate visualizza il giorno prima del mese come si aspetterebbe un utente francese.

    Suggerimento:

    Per visualizzare un elenco delle altre impostazioni locali in Intellisense, rimuovere le virgolette di chiusura e fr dalla formula e lasciare le virgolette di apertura:

    Visualizzare un elenco di impostazioni locali

  4. Per usare uno dei numerosi formati predefiniti, modificare la proprietà Text di ShowDate impostandola sulla formula seguente:
    Text(DateTimeValue(ArrivalDateTime.Text), DateTimeFormat.LongDateTime)

    Visualizzare un valore data/ora nel formato francese

    ShowDate visualizza il giorno della settimana, la data e l'ora.

    Suggerimento:

    Il parametro DateTimeFormat supporta numerosi altri formati predefiniti. Per visualizzare l'elenco, rimuovere LongDateTime dalla formula.

  5. Per usare un formato personalizzato, modificare la proprietà Text di ShowDate impostandola sulla formula seguente:
    Text(DateTimeValue(ArrivalDateTime.Text), "mm/dd/yyyy hh:mm:ss.fff AM/PM")

    Visualizzare un valore data/ora nel formato francese

    ShowDate visualizza il valore data/ora nel formato specificato con i millisecondi.

    Suggerimento:

    Per arrotondare l'ora al decimo o centesimo di secondo, specificare hh:mm:ss.f o hh:mm:ss.ff nella formula.

Formattare una data usando DateValue

  1. Aggiungere un controllo Input di testo denominato ArrivalDate e digitare una data nel controllo, ad esempio 5/10/85.

  2. Aggiungere un controllo Etichetta denominato FormatDate e impostarne la proprietà Text sulla formula seguente:
    DateValue(ArrivalDate.Text)

    FormatDate visualizza la data digitata, ma con l'anno con quattro cifre.

  3. Impostare la proprietà Text di FormatDate sulla formula seguente:
    DateValue(ArrivalDate.Text, "fr")

    FormatDate visualizza il giorno prima del mese come si aspetterebbe un utente francese.

  4. Per usare uno dei numerosi formati predefiniti, impostare la proprietà Text di FormatDate sulla formula seguente:
    Text(DateValue(ArrivalDate.Text), DateTimeFormat.LongDate)

    FormatDate visualizza il giorno della settimana, il mese, il giorno e l'anno.

  5. Per usare un formato personalizzato, impostare la proprietà Text di FormatDate sulla formula seguente:
    Text(DateValue(ArrivalDate.Text), "yy/mm/dd")

    FormatDate visualizza la data nel formato specificato.

Formattare un'ora usando DateTimeValue

  1. Aggiungere un controllo Input di testo denominato ArrivalTime e quindi digitare 6:15 AM nel controllo.

  2. Aggiungere un controllo Etichetta denominato ShowTime.

  3. Per usare uno dei numerosi formati predefiniti, impostare la proprietà Text di ShowTime sulla formula seguente:
    Text(DateTimeValue(ArrivalTime.Text), DateTimeFormat.LongTime)

    ShowTime visualizza l'ora specificata, inclusi i secondi.

  4. Per usare un formato personalizzato, impostare la proprietà Text di ShowTime sulla formula seguente:
    Text(DateTimeValue(ArrivalTime.Text), "hh:mm:ss.fff AM/PM")

    ShowTime visualizza l'ora specificata, inclusi i secondi e i millisecondi.

    Suggerimento:

    Per arrotondare l'ora al decimo o centesimo di secondo, immettere hh:mm:ss.f o hh:mm:ss.ff nella formula.

Visualizzare il tempo tra due date

  1. Aggiungere due controlli Input di testo denominati Start ed End.

  2. Digitare 4/1/2015 in Start e 1/1/2016 in End.

  3. Aggiungere un controllo Etichetta denominato DateDiff e impostarne la proprietà Text sulla formula seguente:
    DateDiff(DateValue(Start.Text), DateValue(End.Text))

    Confrontare due date

    DateDiff visualizza 275, ovvero il numero di giorni tra il 1° aprile 2015 e il 1° gennaio 2016.

  4. Impostare la proprietà Text di DateDiff sulla formula seguente:
    DateDiff(DateValue(Start.Text), DateValue(End.Text), Months)

    DateDiff visualizza 9, ovvero il numero di mesi tra il 1° aprile 2015 e il 1° gennaio 2016. Sostituire Months con Quarters o Years per visualizzare il tempo nell'unità specificata.

Identificare una data precedente o successiva a un'altra data

  1. Aggiungere un controllo Input di testo denominato Start e digitare 5/10/1985 nel controllo.

  2. Aggiungere un controllo Etichetta denominato DateAdd e impostarne la proprietà Text sulla formula seguente:
    DateAdd(DateValue(Start.Text), 3)

    Aggiungere tre giorni

    DateAdd visualizza 5/13/1985, ovvero tre giorni dopo la data specificata in Start.

  3. Impostare la proprietà Text di DateAdd sulla formula seguente:
    DateAdd(DateValue(Start.Text), -3)

    Sottrarre tre giorni

    DateAdd visualizza 5/7/1985, ovvero tre giorni prima della data specificata in Start.

  4. Modificare la proprietà Text di DateAdd impostandola sulla formula seguente:
    DateAdd(DateValue(Start.Text), 3, Months)

    Aggiungere tre mesi

    L'etichetta visualizza 8/10/1985, ovvero tre mesi dopo la data specificata in Start. Sostituire Months con Quarters o Years per identificare una data che corrisponde al numero di trimestri o anni prima o dopo la data specificata in Start.

Calcolare le date in base ad anni, mesi e giorni

  1. Aggiungere tre controlli A discesa denominati Year, Month e Day.

  2. Impostare la proprietà Items di Year sulla formula seguente:
    Table({Year:"2014"}, {Year:"2015"}, {Year:"2016"})

  3. Impostare la proprietà Items di Month sulla formula seguente:
    Table({Month:"1"}, {Month:"2"}, {Month:"3"}, {Month:"4"}, {Month:"5"}, {Month:"6"}, {Month:"7"}, {Month:"8"}, {Month:"9"}, {Month:"10"}, {Month:"11"}, {Month:"12"})

  4. Impostare la proprietà Items di Day sulla formula seguente:
    Table({Day:"1"}, {Day:"2"}, {Day:"3"}, {Day:"4"}, {Day:"5"}, {Day:"6"}, {Day:"7"}, {Day:"8"}, {Day:"9"}, {Day:"10"}, {Day:"11"}, {Day:"12"}, {Day:"13"}, {Day:"14"}, {Day:"15"}, {Day:"16"}, {Day:"17"}, {Day:"18"}, {Day:"19"}, {Day:"20"}, {Day:"21"}, {Day:"22"}, {Day:"23"}, {Day:"24"}, {Day:"25"}, {Day:"26"}, {Day:"27"}, {Day:"28"}, {Day:"29"}, {Day:"30"}, {Day:"31"})

  5. Aggiungere un controllo Etichetta e impostarne la proprietà Text sulla formula seguente:
    Text(Date(Value(Year.Selected.Value), Value(Month.Selected.Value), Value(Day.Selected.Value)), DateTimeFormat.LongDate)

    Per impostazione predefinita viene visualizzato Wednesday, January 1, 2014. Selezionare valori diversi nei controlli A discesa per modificare la data nel controllo Etichetta.

Potrebbe essere necessario convertire dati non previsti. Se si aggiungono controlli Input di testo anziché controlli A discesa, gli utenti potrebbero immettere una data errata, ad esempio 45 maggio. La funzione Date gestisce i dati atipici nei modi seguenti:

  • Se un valore di anno è compreso tra 0 e 1899 incluso, la funzione aggiunge il valore a 1900 per calcolare l'anno.
  • Se un valore di anno è compreso tra 1900 e 9999 incluso, la funzione usa il valore come anno.
  • Se un valore di anno è minore di 0 o è 10000 o un valore maggiore, la funzione restituisce un valore di errore.
  • Se un valore di mese è maggiore di 12, la funzione aggiunge il numero di mesi specificato al primo mese dell'anno specificato.
  • Se un valore di mese è minore di 1, la funzione sottrae il numero di mesi specificato più 1 dal primo mese dell'anno specificato.
  • Se un valore di giorno è maggiore del numero di giorni nel mese specificato, la funzione aggiunge il numero di giorni specificato al primo giorno del mese e restituisce la data corrispondente di un mese successivo.
  • Se un valore di giorno è minore di 1, la funzione sottrae il numero di giorni specificato più 1 dal primo giorno del mese specificato.

Calcolare le ore in base a ore, minuti e secondi

  1. Aggiungere due elenchi A discesa denominati Hour e Minute.

  2. Impostare la proprietà Items di Hour sulla formula seguente:
    Table({Hour:"9"}, {Hour:"10"}, {Hour:"11"}, {Hour:"12"}, {Hour:"13"}, {Hour:"14"}, {Hour:"15"}, {Hour:"16"}, {Hour:"17"})

  3. Impostare la proprietà Items di Minute sulla formula seguente:
    Table({Minute:"0"}, {Minute:"15"}, {Minute:"30"}, {Minute:"45"})

  4. Aggiungere un controllo Etichetta e impostarne la proprietà Text sulla formula seguente:

    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), 0), DateTimeFormat.ShortTime)

  5. Selezionare 15 in Hour e 45 in Minute.

    Il controllo Etichetta mostra 3:45 PM.

    È possibile aggiungere voci a Hour e Minute per consentire agli utenti di effettuare la selezione da un intervallo di ore maggiore e di selezionare un numero di minuti più preciso. È anche possibile aggiungere un terzo controllo A discesa per consentire agli utenti di specificare i secondi. Se si aggiunge un terzo elenco, impostare la proprietà Text del controllo Etichetta sull'espressione seguente:
    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), Value(Second.Selected.Value)), DateTimeFormat.LongTime)