日期不正确,json 像 "jsonObject.toString()" 一样传递

Dates are incorrect with json passed like "jsonObject.toString()"

我有一个使用 canvas 在 javascript 中编写的图形组件。如果您向它传递一个有效的 json 日期数组以及该日期的价格(股票交易烛台),您可以更新它的值。

我尝试在此调用中填充的 json 数组通常来自在 js 中创建新日期 - 但是有没有办法将我的 json 数组发送到线路(来自 Primefaces)日期被解释为日期的方式?

当我使用

PrimeFaces.current().executeScript("myFunction(" + jsonObject.toString() + ")");

在线下的日期正在变成看起来很长的数字,我猜这是自 1970 年以来的毫秒数。我该怎么做才能发送这个(相当大的)json数组并将其日期解释为日期? (它们在 date.getMonth() 调用中失败,因为它们是数字而不是日期)。

在服务器端创建 json 数组时,我执行以下操作,这看起来是错误的,因为 getTime() returns 很长。那么在这里如何正确处理日期呢?

json.addProperty("date", data.getKey().getTs().getTime());

使用长值作为日期调用的函数如下。正如 Ultimater 建议的那样,通过 new Date() 传递此对象 - 这应该适用于日期对象 - 以及很长的时间,所以没有伤害!

dateToString(date, multiline) {

    if(date === null)
        return;

    // Added this
    date = new Date(date);

    var datestr = date.getMonth() + " " + date.getDay() + ", " + date.getFullYear();