Data i czas

Formularz XLSForm może zawierać pytania typu date (data), time (czas) lub dateTime (data i czas). Pytania te można definiować za pomocą stylu w celu ułatwienia przechwytywania danych za pomocą wyglądów.

Daty i czas można formatować za pomocą funkcji format-date w kolumnie calculation (obliczania) pytań typu date (data), time (czas) lub dateTime (data i czas). Więcej informacji zawiera temat Formatowanie dat.

Typy pól ArcGIS, do których domyślnie przypisywane są przez aplikację Survey123 pytania typu date (data) i time (czas), można zmienić tak, aby przechwytywały tylko datę, tylko czas lub przesunięcie datownika. Więcej informacji na ten temat zawiera sekcja Kolumny niestandardowe firmy Esri.

Uwaga:

W listopadowym wydaniu aplikacji Survey123 Connect 3.19 i wcześniejszych nie można przypisywać typów pól tylko data, tylko czas ani przesunięcie datownika. Chociaż w lutowej aktualizacji aplikacji Survey123 Connect 3.19 można publikować te typy danych do oprogramowania ArcGIS Enterprise 11.2, nie są one w pełni obsługiwane, a ich użycie w warstwach internetowych oprogramowania ArcGIS Enterprise 11.2 jest uznawane za funkcje w wersji beta.

Pytania początkowe i końcowe automatycznie rejestrują datę i czas rozpoczęcia i zakończenia ankiety i mogą być wykorzystane do obliczenia czasu potrzebnego do wypełnienia ankiety.

Formaty daty i czasu

Istnieją trzy formaty daty i czasu, których można używać w aplikacji Survey123: format ISO 8601, czas epoki (Unix) oraz czas dziesiętny.

Formaty te podsumowano w poniższej tabeli.

NazwaOpisPrzykłady

Format ISO 8601

Ciąg znakowy, który może zawierać przesunięcie czasu UTC. Ten format jest obsługiwany zarówno przez aplikację terenową, jak i aplikację internetową Survey123.

Ten format jest przydatny w przypadku wartości domyślnych i ograniczeń, ponieważ jest czytelny dla człowieka.

2015-08-31T09:07:01Z

2015-08-31T09:07:01Z-07:00

Czas epoki (Unix)

Liczba całkowita reprezentująca liczbę sekund, które upłynęły od godziny 00:00:00 uniwersalnego czasu koordynowanego 1 stycznia 1970 roku. Ten format nie jest obsługiwany w aplikacji internetowej Survey123.

Co prawda daty i godziny wyświetlane w aplikacjach ArcGIS są przekształcone do postaci czytelnej dla człowieka, jednak w usłudze ArcGIS Online i oprogramowaniu ArcGIS Enterprise są one zapisywane jako czas epoki i w ten sposób są zwracane przez obiekt.

1441011600000

Czas dziesiętny

Liczba dziesiętna reprezentująca liczbę dni, które upłynęły od godziny 00:00:00 czasu uniwersalnego (UTC) 1 stycznia 1970 r. Ten format jest obsługiwany zarówno przez aplikację terenową, jak i aplikację internetową Survey123.

Podczas dodawania lub odejmowania wartości daty należy używać czasu dziesiętnego.

16678.375

Wskazówka:

Aby upewnić się, że ankiety działają w taki sam sposób w aplikacji terenowej i aplikacji internetowej, podczas przeprowadzania obliczeń dotyczących daty i czasu należy używać formatu ISO 8601 lub czasu dziesiętnego.

Obliczenia czasu epoki i czasu dziesiętnego

W poniższej tabeli porównano czas epoki i czas dziesiętny z czasem czytelnym dla człowieka.

Czas czytelny dla użytkownikaCzas epokiCzas dziesiętny

1 sekunda

1000

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

1 minuta

60 000 (1000 * 60)

0,00069444444444 (1 / 24 / 60)

1 godzina

3600000 (1000 * 60 * 60)

0,04166666666667 (1 / 24)

1 dzień

86400000 (1000 * 60 * 60 * 24)

1

1 tydzień

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

7

1 miesiąc

2630880000 (1000 * 60 * 60 * 24 * 30.45)

30,45

1 rok

31557600000 (1000 * 60 * 60 * 24 * 365,25)

365,25

Jeśli masz ankiety, które zostały utworzone z wykorzystaniem obliczeń opartych na czasie epoki, należy je przekształcić do czasu dziesiętnego, aby działały poprawnie w aplikacji internetowej Survey123. Poniżej znajdują się przykłady wyrażeń przekształconych z czasu epoki na czas dziesiętny:

CelObliczenie w czasie epokiObliczenie w czasie dziesiętnym

15 minut w przyszłości

now() + 15 * 60 * 1000

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

Dwa tygodnie w przyszłości

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

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

Czas obiadu w minutach

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

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

Obliczanie wieku na podstawie daty urodzin (w latach)

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

int((decimal-date-time(today()) - decimal-date-time(${birth_date})) div 365,25)

Po zidentyfikowaniu zmian koniecznych do wprowadzenia w ankiecie proces aktualizacji przebiega następująco:

  1. W aplikacji Survey123 Connect należy wszelkie obliczenia czasu oparte na czasie epoki zaktualizować do formatu dziesiętnego. Przed kontynuacją zaleca się wykonanie kopii zapasowej formularza XLSForm.
  2. Przetestuj zaktualizowane obliczenia w podglądzie wyświetlanym w aplikacji Survey123 Connect, aby upewnić się, że działają w oczekiwany sposób.
  3. Ponownie opublikuj ankietę. Aktualizacje obliczeń nie wyzwalają operacji ponownego publikowania warstwy obiektowej, zatem żadne istniejące dane nie zostaną utracone.
  4. Poproś użytkowników w terenie o zaktualizowanie ankiety w aplikacji terenowej Survey123.