Data e ora

Un XLSForm può contenere domande date, time o dateTime. Queste domande possono essere concepite per facilitare l'acquisizione dati tramite aspetti.

È possibile formattare date e ore utilizzando la funzione format-date nella colonna di calcolo delle domande date, time e dateTime. Per ulteriori informazioni, vedere Formattazione della data.

I tipi di campo ArcGIS a cui Survey123 assegna le domande date e time per impostazione predefinita possono essere modificate in modo da acquisire solo la data, solo l'ora o l'offset di timestamp. Per ulteriori informazioni, vedere Colonne personalizzate di Esri.

Attenzione:

La release di novembre di Survey123 Connect 3.19 e le versioni precedenti non possono assegnare tipo di campi solo data, solo ora o offset di timestamp. Anche se con l'aggiornamento di febbraio di Survey123 Connect 3.19 è possibile pubblicare questi tipi di dati in ArcGIS Enterprise 11.2, non sono completamente supportati e il loro uso nei layer Web in ArcGIS Enterprise 11.2 è considerato una funzionalità beta.

Le domande start ed end acquisiscono la data e l'ora di inizio e fine del rilevamento automaticamente e possono essere usate per calcolare il tempo impiegato per completare un rilevamento.

Ora Epoch e decimale

Esistono due modi per rappresentare l'ora in Survey123: ora Epoch e ora decimale. L'app da campo Survey123 supporta sia l'ora Epoch che l'ora decimale, mentre l'app Web supporta solo l'ora decimale. Per essere certi che i rilevamenti funzionino in modo coerente nell'app di campo e nell'app Web, è necessario utilizzare il formato ora decimale nei calcoli di data e ora.

L'ora Epoch e l'ora decimale sono due modi diversi di rappresentare l'ora. L'ora Epoch (conosciuta anche come ora UNIX) è definita come il numero di secondi trascorsi dalle 00:00:00 tempo coordinato universale (UTC) del 1 gennaio 1970. ArcGIS memorizza l'ora in millisecondi in UTC, quindi l'app da campo Survey123 supporta l'ora Epoch in millisecondi. L'ora decimale è definita come il numero di giorni trascorsi dallo stesso punto.

Ora leggibile da un utenteOra EpochOra decimale

Lunedì 31 agosto 2015 09:00:00

1441011600000

16678.375

Ciò è importante perché, sebbene l'app da campo Survey123 supporti l'ora Epoch e l'ora decimale, l'app Web Survey123 supporta solo l'ora decimale. Se il rilevamento deve essere utilizzato sul Web (da solo o insieme all'app di campo), è necessario calcolare alcune date usando l'ora decimale. In particolare, questo è necessario, ad esempio, per il calcolo di una durata, il calcolo del numero di giorni o secondi o i calcoli che prevedono l'aggiunta o la sottrazione di date/ore.

Per questi tipi di calcoli, eseguire un calcolo su un valore data di formato decimale, eseguire il calcolo e convertire il risultato a un valore data. Questa equazione di esempio converte una data decimale restituita dalla funzione now(), aggiunge 14 giorni alla stessa e riconverte in risultato in una data.

date(decimal-date-time(now()) + 14)

La data restituita da questa funzione può quindi essere usata per aggiornare una data nel rilevamento o inviata come parte del rilevamento.

Quando si aggiunge o si sottrae un valore data è anche necessario utilizzare giorni decimali. Utilizzare la seguente tabella come riferimento per l'equivalenza tra l'ora decimale e l'ora leggibile da un utente e l'ora Epoch.

Ora leggibile da un utenteOra EpochOra decimale

1 secondo

1000

0,00001157407407 (1 / 24 / 60 / 60)

1 minuto

60.000 (1000 * 60)

0,00069444444444 (1 / 24 / 60)

1 ora

3600000 (1000 * 60 * 60)

0,04166666666667 (1 / 24)

1 giorno

86400000 (1000 * 60 * 60 * 24)

1

1 settimana

604800000 (1000 * 60 * 60 * 24 * 7)

7

1 mese

2630880000 (1000 * 60 * 60 * 24 * 30,45)

30.45

1 anno

31557600000 (1000 * 60 * 60 * 24 * 365.25)

365.25

Convertire i calcoli dell'ora Epoch in calcoli dell'ora decimale

Se si dispone di rilevamenti esistenti che sono stati creati utilizzando calcoli di ora basata su Epoch, dovranno essere convertiti in ora decimale per funzionare correttamente sull'app Web Survey123. Di seguito sono riportati alcuni esempi di espressioni convertite da ora Epoch a decimale:

ObiettivoCalcolo ora EpochCalcolo ora decimale

15 minuti nel futuro

now() + 15 * 60 * 1000

date-time(decimal-date-time(now()) + 0,0104166675)

Due settimane nel futuro

now() + 14 * 24 * 60 * 60 * 1000

date(decimal-date-time(now()) + 14)

Tempo trascorso in pausa pranzo in minuti

int(${LunchEnd} - ${LunchStart}) div (1000 * 60)

int((decimal-date-time(${lunchends}) - decimal-date-time(${lunchstarts})) * 24 * 60)

Calcolare età da una data di nascita (in anni)

int((today() - ${birth_date}) div (1000 * 24 * 60 * 60 * 365.25))

int((decimal-date-time(today()) - decimal-date-time(${birth_date})) div 365.25)

Dopo aver compreso le modifiche necessarie per il proprio rilevamento, il processo di aggiornamento è il seguente:

  1. In Survey123 Connect, aggiornare qualsiasi calcolo dell'ora basato su Epoch per utilizzare calcoli di data decimali. Prima di procedere, si consiglia di salvare un backup dell'XLSForm.
  2. Verificare i calcoli aggiornati nell'anteprima Survey123 Connect per accertarsi che funzionino come previsto.
  3. Pubblicare nuovamente il rilevamento. Gli aggiornamenti dei calcoli non attivano una nuova pubblicazione del feature layer, pertanto durante questa operazione non verranno persi dati esistenti.
  4. Chiedere agli utenti sul campo di aggiornare il rilevamento nell'app di campo di Survey123.