Um XLSForm pode conter perguntas de data, hora ou dateTime. Essas perguntas podem ser estilizadas para auxiliar na captura de dados usando aparências.
Você pode formatar datas e horas usando a função format-date na coluna de cálculo de data, hora ou perguntas dateTime. Para mais informações, consulte Formatação de data.
Os tipos de campo do ArcGIS aos quais as perguntas de data e hora são atribuídas no Survey123 por padrão, podem ser alterados para capturar somente data, somente hora ou deslocamento do carimbo de data/hora. Para saber mais, consulte Colunas personalizadas da Esri.
Aviso:
A versão de Novembro e anteriores doSurvey123 Connect 3.19 não podem atribuir tipos de campo somente data, somente hora ou deslocamento do carimbo de data/hora. Embora a Atualização de Fevereiro do Survey123 Connect 3.19 possa publicar esses tipos de dados no ArcGIS Enterprise 11.2, eles não são totalmente suportados e seu uso nas camadas da web do ArcGIS Enterprise 11.2 é considerado uma funcionalidade beta.
As perguntas inicial e final capturam automaticamente a data e hora inicial e final da pesquisa e podem ser usadas para calcular o tempo necessário para concluir uma pesquisa.
Tempo de época e tempo decimal
Há duas maneiras que você pode representar o tempo no Survey123 : tempo de época e tempo decimal. O aplicativo de campo Survey123 oferece suporte ao tempo de época e ao tempo decimal, enquanto o aplicativo da web oferece suporte apenas ao tempo decimal. Para garantir que as pesquisas funcionem de forma consistente no aplicativo de campo e no aplicativo da web, você deve usar a hora decimal nos cálculos de data e hora.
Tempo de época e tempo decimal são maneiras diferentes de representar o tempo. A hora da época (também conhecida como hora do UNIX) é definida como o número de segundos decorridos desde 00:00:00 do tempo universal coordenado (UTC) em 1º de janeiro de 1970. O ArcGIS armazena o tempo em milissegundos em UTC, portanto, o Survey123 field app suporta o tempo de época em milissegundos. O tempo decimal é definido como o número de dias decorridos desde o mesmo ponto.
Tempo legível ao humano | Tempo de época | Tempo de decimal |
---|---|---|
Segunda-feira, 31 de agosto de 2015 09:00:00 | 1441011600000 | 16678.375 |
Isto é importante pois, embora o Survey123 field app suporte tempo de época e tempo decimal, o Survey123 web app suporta somente tempo decimal. Se sua pesquisa precisa funcionar na web (por si só ou junto com o aplicativo de campo), você deve calcular algumas datas usando o tempo decimal. Em particular, isto é necessário para calcular uma duração, por exemplo, calculando uma quantidade de dias ou segundos, ou aqueles que envolvem a adição ou subtração dos tempos de data.
Para esses tipos de cálculos, execute um cálculo em um valor de formato de data decimal, execute o cálculo e converta o resultado em um valor de data. Esta equação de amostra converte uma data decimal retornada da função now(), adiciona 14 dias a ela e converte o resultado novamente em uma data.
date(decimal-date-time(now()) + 14)
Você pode usar a data retornada por esta função para atualizar uma data em sua pesquisa ou enviá-la como parte de sua pesquisa.
Ao adicionar ou subtrair de um valor de data, você também deve usar dias decimais. Utilize a seguinte tabela como uma referência para saber como o tempo decimal equivale ao tempo legível aos humanos e ao tempo de época.
Tempo legível ao humano | Tempo de época | Tempo de decimal |
---|---|---|
1 segundo | 1000 | 0.00001157407407 (1 / 24 / 60 / 60) |
1 minuto | 60,000 (1000 * 60) | 0.00069444444444 (1 / 24 / 60) |
1 hora | 3600000 (1000 * 60 * 60) | 0.04166666666667 (1 / 24) |
1 dia | 86400000 (1000 * 60 * 60 * 24) | 1 |
1 semana | 604800000 (1000 * 60 * 60 * 24 * 7) | 7 |
1 mês | 2630880000 (1000 * 60 * 60 * 24 * 30.45) | 30.45 |
1 ano | 31557600000 (1000 * 60 * 60 * 24 * 365.25) | 365.25 |
Alterar cálculos de época para cálculos de tempo decimais
Se você tiver pesquisas existentes que foram criadas usando cálculos de tempo baseados em época, você deve convertê-las em tempo decimal para funcionar corretamente no aplicativo da web Survey123. A seguir estão alguns exemplos de expressões convertidas de tempo de época para tempo decimal:
Objetivo | Cálculo do tempo de época | Cálculo do tempo decimal |
---|---|---|
15 minutos no futuro | now() + 15 * 60 * 1000 | date-time(decimal-date-time(now()) + 0.0104166675) |
Duas semanas no futuro | now() + 14 * 24 * 60 * 60 * 1000 | date(decimal-date-time(now()) + 14) |
Tempo gasto para almoçar em minutos | int(${LunchEnd} - ${LunchStart}) div (1000 * 60) | int((decimal-date-time(${lunchends}) - decimal-date-time(${lunchstarts})) * 24 * 60) |
Calcular idade a partir de um aniversário (em anos) | int((today() - ${birth_date}) div (1000 * 24 * 60 * 60 * 365.25)) | int((decimal-date-time(today()) - decimal-date-time(${birth_date})) div 365.25) |
Após você ter uma compreensão das alterações necessárias para sua pesquisa, o processo de atualização é o seguinte:
- No Survey123 Connect, atualize quaisquer cálculos de tempo baseados em época para usar data e hora decimal. É recomendado que você salve um backup do XLSForm antes de continuar.
- Teste os cálculos atualizados na visualização do Survey123 Connect para garantir que eles funcionem como esperado.
- Republique a pesquisa. As atualizações para os cálculos não provocam uma republicação da camada de feição, portanto, nenhum dado existente será perdido ao fazer isto.
- Faça com que os usuários de campo atualizem a pesquisa no Survey123 field app.