我有一个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);

答案 0 :(得分:1)
nlapiSetDateTimeValue API具有以下参数fieldId,dateTime和timeZone。 timeZone参数不是日期应转换为的时区。它应该是dateTime字段的时区。此API会将dateTime的值转换为NetSuite帐户中设置的 USER' S TIMEZONE 。
因此,请确保运行RESTlet的用户将其时区设置为Eastern,然后在API调用中传递Pacific的Olson值。
答案 1 :(得分:0)
NetSuite服务器设置为具有PST日期/时间。如果您的日期/时间在美国东部时间,请在更新记录之前先将其转换为PST,如果您从NetSuite中取出日期/时间,则将其转换为EST。