IBM Cloud Functions Node.js环境如何正确获取日本标准时间?
问题原因
toLocaleString方法参数传递不符合语法规则:该方法的第一个参数为语言区域标识,第二个参数才是包含timeZone的格式化配置对象。你将时区配置直接作为第一个参数传入属于无效传参,配置会被引擎忽略,自动使用运行环境的默认时区。- IBM Cloud Functions的Node.js运行环境默认时区为UTC,你触发代码时的日本时间(UTC+9)10月13日6:28,对应UTC时间为10月12日21:28,和你得到的输出完全匹配,和部署区域的悉尼时区无关。
解决方案
修正参数传递格式,将时区配置放到第二个参数位即可:
// 可根据需要的显示语言指定第一个参数,例如ja-JP为日语格式 console.log(new Date().toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' })) // 不需要指定显示语言的场景,第一个参数传undefined即可使用系统默认语言 console.log(new Date().toLocaleString(undefined, { timeZone: 'Asia/Tokyo' }))
修正后输出的时间就会是正确的日本时区时间。
内容的提问来源于stack exchange,提问作者mira
相关产品推荐
相关产品推荐

