日期和时间

XLSForm 可以包含日期、时间或日期时间问题。 可以使用外观设置这些问题的样式,以帮助进行数据捕获。

您可以在日期、时间或日期时间问题的计算列中使用 format-date 函数设置日期和时间格式。 有关详细信息,请参阅设置日期的格式

默认情况下,Survey123 分配的日期和时间问题的 ArcGIS 字段类型可以更改为仅捕获日期、仅时间或时间戳偏移。 有关详细信息,请参阅 Esri 自定义列

警告:

Survey123 Connect 3.19 11 月版本及更早版本无法分配仅日期、仅时间或时间戳偏移字段类型。 尽管 Survey123 Connect 3.19 2 月更新的版本可以将这些数据类型发布到 ArcGIS Enterprise 11.2,但是它们得不到完全支持,其在 ArcGIS Enterprise 11.2 Web 图层中的使用被视为测试功能

开始和结束问题可自动捕获调查的开始和结束日期和时间,并且可用于计算完成调查花费的时间。

日期和时间格式

Survey123 中,您可以使用三种日期和时间格式:ISO 8601 格式、新纪元 (Unix) 时间和十进制时间。

下表汇总了这些格式。

名称描述示例

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 OnlineArcGIS Enterprise 中存储的方式,并且是要素对象返回的内容。

1441011600000

十进制时间

表示自 1970 年 1 月 1 日 00:00:00 协调世界时 (UTC) 以来经过的天数的十进制数。此格式在 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)

未来两周

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 中,更新所有基于新纪元的时间计算以使用十进制日期计算。 建议在继续操作之前先保存一份 XLSForm 的副本。
  2. Survey123 Connect 预览中测试更新后的计算,以确保计算按预期运行。
  3. 重新发布调查。 更新计算不会触发重新发布要素图层,因此该操作不会造成现有数据丢失。
  4. 允许外业用户在 Survey123 外业应用程序中更新调查。