Zapier代码(NodeJS)toLocaleString()timeZone

时间:2018-03-06 18:08:38

标签: javascript node.js timezone zapier

尝试使用以下代码时:

//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()函数执行其他任何操作。

有什么想法吗?

1 个答案:

答案 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支持的版本。