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 の質問は、調査の開始日時と終了日時を自動的に取得し、調査を完了するまでにかかった時間を計算するために使用されます。
表示設定
[appearance] 列を [year] に設定すると、日付の質問が年のみのボタンで表示され、矢印で年の値を増減できます。

[appearance] を [month-year] に設定すると、日付の質問が月のボタンと年のボタンのペアで表示されます。 それぞれに値を増減させる矢印が付いています。

注意:
調査が現在の月と年の値を読み込む場合、[year] および [month-year] の表示設定が表示されます。 ただし、それらの値はまだ含まれておらず、手動で編集しない限り、空の値が送信されるか、デフォルト値または計算が適用されます。
[appearance] を [week-number] に設定すると、日付の質問は日付選択用のカレンダー ピッカーで表示されますが、選択後の結果は、ISO 8601 で定義されているとおり、その年の何週目かという数値で表示されます。 たとえば、2016 年 4 月 27 日を選択すると、結果には Week 17 と表示されます。

注意:
[week-number] 表示設定は Survey123 Web アプリでサポートされていません。
日時形式
Survey123 で使用できる日時形式には、ISO 8601 形式、エポック (Unix) タイム、十進化時間の 3 つがあります。
次の表に、これらの形式の概要を示します。
| 名前 | 説明 | 例 |
|---|---|---|
UTC オフセットを含めることができる文字列。 この形式は、人間が判読できるため、デフォルトおよび制約として役立ちます。 | 2015-08-31T09:07:01Z 2015-08-31T09:07:01Z-07:00 | |
エポック (Unix) タイム * | 1970 年 1 月 1 日の 00:00:00 協定世界時 (UTC) から経過したミリ秒数を表す整数。 エポック タイムは、ArcGIS アプリに表示されるときには人間が判読できる日時に変換されますが、ArcGIS Online および ArcGIS Enterprise にデータを格納する際の形式であり、フィーチャ オブジェクトによって返されます。 | 1441011600000 |
十進化時間 | 1970 年 1 月 1 日の 00:00:00 協定世界時 (UTC) から経過した日数を表す十進数。 日付値に対する加算または減算では、十進化時間を使用する必要があります。 | 16678.375 |
* エポック タイム形式は、Survey123 Web アプリではサポートされていません。
ヒント:
調査がすべての Survey123 アプリで一貫して動作することを保証するには、日時計算で 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) |
調査に必要な変更を理解したら、次の手順で更新します。
- Survey123 Studio または Survey123 Connect で、エポックベースの時間計算を、10 進数の日付計算を使用するように更新します。 次に進む前に、XLSForm のバックアップを保存することをおすすめします。
- 更新された計算を Survey123 Studio または Survey123 Connect でプレビューしてテストし、期待通りに動作することを確認します。
- 調査を再公開します。 計算を更新しても、フィーチャ レイヤーの再公開は実行されません。そのため、この更新によって既存のデータは失われません。
- 現場のユーザーに、Survey123 Mobile または Survey123 のフィールド アプリの調査を更新させるか、Survey123 Web アプリで調査を再起動します。