【发布时间】:2021-04-21 12:00:56
【问题描述】:
在一个 Spring 启动项目中,我们调用 GraalVM 来处理一些用 JavaScript 编写的规则。 GraalVM 版本是 'org.graalvm.sdk=1.0.0-rc11'。当我们使用strptime() 时,它会额外增加一个月。与日期 24/02/2021 一样,它转换为 24/03/2021。你能告诉我为什么会这样吗?
此处源作为源日期传递,例如 24/02/2021
const return_date = new Date().strptime(source, format(source)).toIsoString()
注意:如果我们在一个月的最后一天(例如 1 月 31 日)执行此操作,则会发生这种情况,前几天它会给我返回的预期日期。那么知道为什么strptime() 会这样吗?
【问题讨论】:
-
源是 java.util.date.Date 吗?如果是,那么它来自 Date 的月份从 0 到 11 的事实。尝试使用 LocalData 而不是 docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
-
它不是 java.util.date.Date。这只是取自 json,在 JSON.parse(source[0].CREATION_DATE) 之类的 javascript 函数中。这个 javascript 由 GraalVM 执行。
-
但是 JavaScript 日期月份也在 0 到 11 的范围内。????
-
我添加了一个注释,关于它实际发生的时间。当我们在一个月的最后一天执行时,就会发生这种情况。前几天它给出了正确的日期。有什么想法吗?
-
javascript中没有strptime方法吗?
标签: javascript java strptime graalvm