尝试使用以下代码时:
//Placed here for continuity sake
var inputData = {
content: 'Created: 2018-03-06T13:58:35.660Z\nName: Operator\nText: test\n\nCreated: 2018-03-06T14:00:16.093Z\nName: Operator\nText: test'
}
//Actual code in Zap
var transcript = inputData.content.replace(/(\d{4})(-(\d{2}))??(-(\d{2}))??(T(\d{2}):(\d{2})(:(\d{2}))??(\.(\d+))??(([\+\-]{1}\d{2}:\d{2})|Z)??)??$/gm,function(x){
var dtin = new Date(Date.parse(x));
var dtout = dtin.toLocaleString('en-US',{timeZone: "America/New_York",hour12: true});
return dtout;
})
//return {content : transcript}; commented in favor of console.log for here only
console.log(transcript);
转换的时区部分不会发生。测试步骤时不会遇到任何错误,它只是不会转换为EST时区,因为它通过toLocaleString()函数执行其他任何操作。
有什么想法吗?
答案 0 :(得分:0)
timeZone
的{{1}}参数作为ECMAScription Internationalization API的一部分提供。这是一个可选的API,可以在没有支持的情况下构建NodeJS 。
根据您在评论中提供的toLocaleString
的输出,它会显示,因为没有报告process.versions
版本,确实您正在运行的Node实例是在没有国际化支持的情况下构建的。有关详细信息,请参阅the NodeJS documentation。
此外,它是Node的旧版本。我对Zapier不熟悉,但我在these Zapier docs中看到,他们允许您通过更新icu
文件中的zapier-platform-core
版本来使用较新版本。您可能想要设置package.json
并查看它是否选择了一个较新的Node版本,也许是一个具有完整Intl timeZone支持的版本。