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.

Czas epoki i czas dziesiętny

Czas można przedstawiać w aplikacji Survey123 na dwa sposoby: jako czas epoki i czas dziesiętny. Aplikacja terenowa Survey123 obsługuje zarówno czas epoki, jak i czas dziesiętny, natomiast aplikacja internetowa obsługuje tylko czas dziesiętny. 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ć czasu dziesiętnego.

Czas epoki i czas dziesiętny to różne sposoby reprezentacji czasu. Czas epoki (nazywany także czasem systemu UNIX) jest definiowany jako liczba sekund, które upłynęły od godziny 00:00:00 uniwersalnego czasu koordynowanego 1 stycznia 1970 roku. Oprogramowanie ArcGIS przechowuje czas w milisekundach czasu UTC, dlatego aplikacja terenowa Survey123 obsługuje czas epoki w milisekundach. Czas dziesiętny jest definiowany jako liczba dni, które upłynęły od tego samego punktu w czasie.

Czas czytelny dla użytkownikaCzas epokiCzas dziesiętny

Poniedziałek, 31 sierpnia 2015 09:00:00

1441011600000

16678,375

Jest to ważne, ponieważ aplikacja terenowa Survey123 obsługuje zarówno czas epoki, jak i czas dziesiętny, natomiast aplikacja internetowa Survey123 obsługuje tylko czas dziesiętny. Jeśli ankieta ma działać w Internecie (tylko tam lub także w aplikacji terenowej), niektóre daty należy obliczać przy użyciu czasu dziesiętnego. Jest to szczególnie istotne podczas obliczania czasu trwania, na przykład liczby dni lub sekund, albo wykonywania obliczeń polegających na dodawaniu lub odejmowaniu czasów i dat.

W tego typu obliczeniach należy wykonać obliczenie na wartości w formacie daty dziesiętnej, a po wykonaniu obliczenia przekształcić wynik na wartość daty. To przykładowe pytanie przekształca datę dziesiętną zwróconą przez funkcję now(), dodaje do niej 14 dni i przekształca wynik z powrotem w datę.

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

Data zwracana przez tę funkcję może być następnie używana do aktualizowania daty w ankiecie lub przesłana jako część ankiety.

Podczas dodawania lub odejmowania wartości daty także należy używać dni dziesiętnych. Poniższa tabela zawiera informacje o tym, jak czas dziesiętny ma się do czasu czytelnego dla użytkownika i czasu epoki.

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

Zmiana obliczeń czasu epoki na obliczenia czasu dziesiętnego

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 do czasu dziesiętnego:

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.