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.
Nazwa | Opis | Przykłady |
---|---|---|
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żytkownika | Czas epoki | Czas 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:
Cel | Obliczenie w czasie epoki | Obliczenie 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:
- 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.
- Przetestuj zaktualizowane obliczenia w podglądzie wyświetlanym w aplikacji Survey123 Connect, aby upewnić się, że działają w oczekiwany sposób.
- Ponownie opublikuj ankietę. Aktualizacje obliczeń nie wyzwalają operacji ponownego publikowania warstwy obiektowej, zatem żadne istniejące dane nie zostaną utracone.
- Poproś użytkowników w terenie o zaktualizowanie ankiety w aplikacji terenowej Survey123.