NetSuite RESTlet,提交日期/时区问题

NetSuite RESTlet, Submitting Date/Time Timezone Issues

本文关键字:时区 问题 日期 提交 RESTlet NetSuite      更新时间:2023-09-26

我有一个 RESTlet,用于从我们网站上的表单提交创建新的客户实体。我正在尝试在添加到客户记录的自定义日期/时间实体字段中保存三个值。该服务接受日期作为时间戳整数(例如 1421434991537)。然后,RESTlet 代码需要将该时间戳作为东部时间的正确日期提交。

我一直在阅读有关NetSuite日期/时间的问题,当我使用"new Date(myIntVal)"创建日期对象时,它会以太平洋时间创建它。我一直在尝试将 Olson 值传递到 setDateTimeValue 中,就像文档和其他一些博客文章所说的那样。

我需要将这些值保存为东部时间,但无论我做什么,时间总是以太平洋时间提交。我错过了什么?

// firstVisit, previousVisit, and currentVisit are all the timestamp int values.
var firstVisitDate = nlapiDateToString(new Date(firstVisit), 'datetimetz');
var previousVisitDate = nlapiDateToString(new Date(previousVisit), 'datetimetz');
var currentVisitDate = nlapiDateToString(new Date(currentVisit), 'datetimetz');
leadRecord.setDateTimeValue(FIELD_NAME_WEB_FIRST_VISIT, firstVisitDate, 14);
leadRecord.setDateTimeValue(FIELD_NAME_WEB_PREVIOUS_VISIT, previousVisitDate, 14);
leadRecord.setDateTimeValue(FIELD_NAME_WEB_CURRENT_VISIT, currentVisitDate, 14);

nlapiSetDateTimeValue API 具有以下参数 fieldId、dateTime 和 timeZone。 时区参数不是日期应转换为的时区。 它应该是日期时间字段的时区。 此 API 将 dateTime 的值转换为用户在其 NetSuite 帐户中设置的时区。

因此,请确保运行 RESTlet 的用户将其时区设置为东部,然后在 API 调用中传递太平洋的奥尔森值。

NetSuite 服务器设置为具有 PST 日期/时间。如果您的日期/时间在美国东部标准时间,请先将其转换为PST,然后再更新记录,如果您要从NetSuite中提取日期/时间,请将其转换为EST。