Javascript strptime() 增加了一个月

问题描述

从 Spring boot 项目中,我们调用 GraalVM 来处理一些用 JavaScript 编写的规则。 GraalVM 版本是“org.graalvm.sdk=1.0.0-rc11”。当我们使用 strptime() 时,它增加一个月。就像日期 24/02/2021 一样,它被转换为 24/03/2021。你能告诉我为什么会这样吗?

这里的 source 作为源日期传递,如 24/02/2021

const return_date = new Date().strptime(source,format(source)).toIsoString()

注意:如果我们在一个月的最后一天(例如 1 月 31 日)执行此操作,则会发生这种情况,而另一天它给了我返回的预期日期。那么知道为什么 strptime() 会这样吗?

解决方法

除了strptime()函数,你可以直接这样使用:

const return_date = new Date(source).toISOString()