日時

XLSForm には、date、time、dateTime の質問を含めることができます。 表示設定を使用し、これらの質問でデータ取得を支援するようスタイル設定できます。

date、time、dateTime の質問の calculation 列で format-date 関数を使用し、日付と時刻の書式を設定できます。 詳細については、「日付の書式設定」をご参照ください。

Survey123 がデフォルトで date と time の質問を割り当てている ArcGIS フィールド タイプは、date only、time only、timestamp offset を取得するよう変更できます。 詳細については、「Esri カスタム列」をご参照ください。

注意:

Survey123 Connect 3.19 の 11 月リリース以前では、date only、time only、timestamp offset フィールド タイプを割り当てることはできません。 Survey123 Connect 3.19 の 2 月のアップデートではこれらのデータ タイプを ArcGIS Enterprise 11.2 に公開できますが、完全にサポートされていないため、ArcGIS Enterprise 11.2 Web レイヤーでの使用は ベータ版の機能とみなされます。

start と end の質問は、調査の開始日時と終了日時を自動的に取得し、調査を完了するまでにかかった時間を計算するために使用されます。

日時形式

Survey123 で使用できる日時形式には、ISO 8601 形式、エポック (Unix) タイム、十進化時間の 3 つがあります。

次の表に、これらの形式の概要を示します。

名前説明

ISO 8601 形式

UTC オフセットを含めることができる文字列。 この形式は、Survey123 フィールド アプリおよび Web アプリの両方でサポートされます。

この形式は、人間が判読できるため、デフォルトおよび制約として役立ちます。

2015-08-31T09:07:01Z

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

エポック (Unix) タイム

1970 年 1 月 1 日の 00:00:00 協定世界時 (UTC) から経過したミリ秒数を表す整数。 この形式は、Survey123 Web アプリではサポートされません。

エポック タイムは、ArcGIS アプリに表示されるときには人間が判読できる日時に変換されますが、ArcGIS Online および ArcGIS Enterprise にデータを格納する際の形式であり、フィーチャ オブジェクトによって返されます。

1441011600000

十進化時間

1970 年 1 月 1 日の 00:00:00 協定世界時 (UTC) から経過した日数を表す 10 進数。この形式は、Survey123 フィールド アプリおよび Web アプリの両方でサポートされます。

日付値に対する加算または減算では、十進化時間を使用する必要があります。

16678.375

ヒント:

調査がフィールド アプリと Web アプリの両方で一貫して動作することを保証するには、日時計算で ISO 8601 形式または十進化時間を使用する必要があります。

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

次の表に、エポック タイムと十進化時間が、判読可能な時間にどのように対応しているかを示します。

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

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 フィールド アプリの調査を更新させます。