将日期转换为字符串 - SuiteScript 2.0

Converting a date to a string - SuiteScript 2.0

目标:在 NetSuite SuiteScript 2.0 计划脚本中将 JS 日期对象转换为格式为“11/2/2017”的字符串表示形式。

我有一个日期对象,我需要将其用于两个目的。其中之一,我将使用它进行比较(所以我想要实际的日期对象)。另一个是我希望它成为自定义记录的名称,即字符串值。

我在 NetSuite SuiteScript 2.0 (Javascript) 的计划脚本中执行此操作。现在日期的 toString() 是:“2017-11-02T07:00:00.000Z”。我希望最终使用的名称格式是 11/2/2017。

当我在浏览器测试应用程序中测试 toLocaleDateString() 时,我得到 11/2/2017 - 正是我想要的格式。然而,当我在 SuiteScript 2.0 中起诉同样的事情时,我得到 "November 2, 2017"。我知道 client/server 之间存在差异,但这令人沮丧。

我尝试了 format.parse() 函数,因为 NetSuite 的文档声称这等同于 1.0 nlapiDateToString() 函数。这没有用。

除了编写自己的函数(我很想这样做)之外,有谁知道如何实现这个目标吗?

我建议使用 momentJS 库来满足您所有的 SuiteScript 日期操作需求。它作为 SuiteScript 2.0 模块运行良好,您可以轻松设置日期格式:

var now = new Date();
var formattedDate = moment(now).format('M/D/YYYY');

要切换到该格式,您不会使用 format.parse,您会使用 format.format。这是一个将日期对象转换为该字符串格式的简单示例。

require(['N/format'],function(format){
  function formatDate(testDate){
    log.debug('testDate: '+testDate);
    var responseDate=format.format({value:testDate,type:format.Type.DATE});
    log.debug('responseDate: '+responseDate);
  }

  var testDate=new Date();
  formatDate(testDate);
});