10 進数の日付/時間

Survey123 で時間を表す方法は、エポック タイムと十進化時間の 2 種類があります。 Survey123 フィールド アプリはエポック タイムと十進化時間の両方をサポートし、Web アプリは十進化時間のみをサポートします。 調査がフィールド アプリと Web アプリの両方で一貫して動作することを保証するには、日時計算で十進化時間を使用する必要があります。

エポック タイムと十進化時間

エポック タイムと十進化時間は時間を表現する異なる方法です。 エポック タイム (UNIX 時間とも呼ばれる) は、1970 年 1 月 1 日の 00:00:00 協定世界時 (UTC) から経過した秒数で定義されます。 ArcGIS は UTC 形式で時間 (ミリ秒) を格納するので、Survey123 フィールド アプリはエポック タイム (ミリ秒) に対応しています。 十進化時間は同じ時点から経過した日数で定義されます。

判読可能な時間エポック タイム十進化時間

2015 年 8 月 31 日月曜日 9:00:00

1441011600000

16678.375

これは、Survey123 フィールド アプリがエポック タイムと十進化時間の両方をサポートし、Survey123 Web アプリが十進化時間のみをサポートするため、重要です。 調査が (単独で、またはフィールド アプリと一緒に) Web 上で動作する必要がある場合、十進化時間を使用して一部の日付を計算する必要があります。 十進化時間は、特に期間を計算する場合に必要になります。たとえば、日数または秒数を計算する場合や、日付/時間の加算または減算を伴う計算を行う場合です。

このような種類の計算を行う場合、10 進数の日付形式値で計算を実行し、計算を実行して、その結果を日付値に変換します。 次のサンプルの式では、now() 関数から返された 10 進数の日付を変換し、それに 14 日を足して、その結果を再び日付に変換しています。

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

この関数が返す日付は、調査内の日付を更新するために使用したり、調査の一部として送信することができます。

値を日付値に追加したり、日付値から引いたりする場合も、10 進数の日数を使用する必要があります。 十進化時間と、判読可能な時間およびエポック タイムとの対応関係については、以下の表をご参照ください。

判読可能な時間エポック タイム十進化時間

1 秒

1000

0.00001157407407 (1 / 24 / 60 / 60)

1 分

60,000 (1000 * 60)

0.00069444444444 (1 / 24 / 60)

1 時間

3600000 (1000 * 60 * 60)

0.04166666666667 (1 / 24)

1 日

86400000 (1000 * 60 * 60 * 24)

1

1 週間

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

7

1 か月

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

30.45

1 年

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

365.25

調査の移行

エポックベースの時間計算を使用して作成された既存の調査がある場合、Survey123 Web アプリで正常に動作させるには、それらの調査を十進化時間に変換する必要があります。 エポック タイムから十進化時間に変換された式の例をいくつか下に示します。

目的エポック タイム計算十進化時間計算

15 分未来に進める

now() + 15 * 60 * 1000

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

2 週間未来に進める

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

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

昼食にかかる時間 (分)

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

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

生まれた日からの年齢 (年) の計算。

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

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

調査に必要な変更を理解したら、次の手順で更新します。

  1. Survey123 Connect で、エポックベースの時間計算を、10 進数の日付計算を使用するように更新します。 次に進む前に、XLSForm のバックアップを保存することをお勧めします。
  2. 更新された計算を Survey123 Connect のプレビューでテストし、期待通りに動作することを確認します。
  3. 調査を再公開します。 計算を更新しても、フィーチャ レイヤーの再公開は実行されません。そのため、この更新によって既存のデータは失われません。
  4. 現場のユーザーに、Survey123 フィールド アプリの調査を更新させます。