如何防止ArcGIS API for JavaScript中查询对象的时区本地化?

如何防止ArcGIS API for JavaScript中查询对象的时区本地化?,javascript,localization,timezone,arcgis,arcgis-js-api,Javascript,Localization,Timezone,Arcgis,Arcgis Js Api,我正在使用ArcGIS API for JavaScript(v3.28)从地理数据库查询托管要素图层。API提供了一个查询类,其中定义了查询本身和任何配置或参数,以及一个QueryTask类,用于处理查询的实际执行并返回结果集 我的问题是,当我使用query和QueryTask类从这些层查询日期-时间信息时,返回的时间被错误地分配了时区,并且也被错误地本地化了。这可能是由于我查询的数据是如何存储的,以及查询类似乎正在对数据进行的假设 我查询的层定期保存日期时间信息。与这些层关联的所有日期时间字

我正在使用ArcGIS API for JavaScript(v3.28)从地理数据库查询托管要素图层。API提供了一个查询类,其中定义了查询本身和任何配置或参数,以及一个QueryTask类,用于处理查询的实际执行并返回结果集

我的问题是,当我使用query和QueryTask类从这些层查询日期-时间信息时,返回的时间被错误地分配了时区,并且也被错误地本地化了。这可能是由于我查询的数据是如何存储的,以及查询类似乎正在对数据进行的假设

我查询的层定期保存日期时间信息。与这些层关联的所有日期时间字段都存储在DBMS中,数据类型为
timestamp,不带时区
。因为每个数据都包含几何信息,所以时区可以追溯计算和应用,我认为这是一个更好的做法,但最终我不能在这个时候自由地进行这些更改。我的需求规定,我应该提供日期时间信息,作为没有关联时区的时间戳

但是,当使用Query和QueryTask类查询此日期时间信息时,返回的时区不正确,从而导致不正确的本地化。在执行查询和返回结果集的过程中,似乎有这样一种假设:没有时区的时间戳应该与时区UTC±00:00相关联。结果集也是本地化的,因此返回的时间戳是相对于时区UTC±00:00的时间戳,这会导致错误本地化的时间戳

我真正想要的是一种使用查询对象来指定日期时间信息作为存储在数据库中的原始数据返回的方法,而不需要任何格式、附加时区或本地化。

我的实际解决方案是通过将时区从本地化区域转换回UTC±00:00来恢复本地化,然后手动从时间戳中删除时区。这也实现了同样的功能,不过如果结果集只返回与数据库中存在的信息完全相同的信息,则不需要额外的日期格式化功能


修改查询以使其返回准确的结果集比使用函数处理错误返回的日期更可取。第一个原因是性能。对于较大的查询,花时间处理日期的需要可能非常重要,完全可以避免。第二个原因是维护。维护一些与API相关的配置设置要比维护需要修改的功能容易得多,如果API版本是高级的,并且我的项目升级了。

这需要熟悉ArcGIS API的人。但是在浏览文档时,我发现了一些关于这方面的信息。也就是说,目前还不清楚你对结果做了什么,你想做什么。如果你能给我们看一个代码示例,那会很有用。你是对的。我对这项技术比较陌生,倾向于依靠文档在这方面提供支持。我无法发布我正在使用的特定专有代码,但我将尝试创建一个我当前正在做的事情和我正在尝试做的事情的最小示例,然后用这些详细信息更新问题。您正在查询的数据源是什么?它是Arc SDE地理数据库中的要素图层吗?我很确定,如果不设置时区,Arc SDE数据库默认使用UTC来存储日期。您可以在上设置服务的时区。我已经更新了问题,希望我想要的和我已经做的更清楚。这需要熟悉ArcGIS API的人。但是在浏览文档时,我发现了一些关于这方面的信息。也就是说,目前还不清楚你对结果做了什么,你想做什么。如果你能给我们看一个代码示例,那会很有用。你是对的。我对这项技术比较陌生,倾向于依靠文档在这方面提供支持。我无法发布我正在使用的特定专有代码,但我将尝试创建一个我当前正在做的事情和我正在尝试做的事情的最小示例,然后用这些详细信息更新问题。您正在查询的数据源是什么?它是Arc SDE地理数据库中的要素图层吗?我很确定,如果不设置时区,Arc SDE数据库默认使用UTC来存储日期。您可以在上设置服务的时区。我已经更新了问题,希望我想要的和我已经做的更清楚。