如何将MySQL时间戳转换为Javascript日期?

如何将MySQL时间戳转换为Javascript日期?,javascript,jsp,google-visualization,jstl,Javascript,Jsp,Google Visualization,Jstl,我想在SpringMVC应用程序的.jsp页面上显示Google图表(折线图)。数据是从MySQL数据库检索的,因此我需要将YYYY-MM-DD HH:MM:SS格式转换为Javascript的日期 数据库是由Hibernate创建的。Reading实体有一个time字段,其类型为java.sql.Timestamp,在数据库中存储为DATETIME results是通过控制器传递给.jsp的Iterable对象。它被正确地传递(我也将数据显示为表) 我正在尝试使用提出的解决方案,但它不起作用

我想在SpringMVC应用程序的.jsp页面上显示Google图表(折线图)。数据是从MySQL数据库检索的,因此我需要将
YYYY-MM-DD HH:MM:SS
格式转换为Javascript的日期

数据库是由Hibernate创建的。
Reading
实体有一个
time
字段,其类型为
java.sql.Timestamp
,在数据库中存储为
DATETIME

results
是通过控制器传递给.jsp的
Iterable
对象。它被正确地传递(我也将数据显示为表)

我正在尝试使用提出的解决方案,但它不起作用

以下是我试图填充图表的代码:

<c:forEach items="${results}" var="reading">
    var t = "${reading.time}".split(/[- :]/);
    var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
    data.addRow([d,${reading.temperature}]);
</c:forEach>

var t=“${reading.time}”.split(/[-:]/);
var d=新日期(t[0],t[1]-1,t[2],t[3],t[4],t[5]);
data.addRow([d,${reading.temperature}]);
图表未显示

事实:

  • JDBC是的一个子类
  • JSTL有一个用于将
    java.util.Date
    转换为
    String
    的函数
  • JavaScript构造函数可以采用ISO8601时间格式的字符串
综合起来:


var d=新日期(${time});
// ...
或者,只需在控制器中使用合适的JSON格式化程序将
results
转换为JSON,并将其打印为JS变量,如so
var data=${data}。另见a.o



与具体问题无关:确保您的模型是
java.util.Date
类型。模型中不应该有
java.sql.*
类型化属性。如果您使用的是普通JDBC,只需将
ResultSet#getTimestamp()
直接向
java.util.Date
上传即可。另请参见a.o.

谢谢您的提示和答案。但是,上述代码不起作用。我想我会尝试JSON解决方案。图表没有显示。我使用的是
data.addRow([d,${reading.temperature}])。我如何调试这个?不幸的是,我一点也不懂Javascript。只要看看生成的HTML输出,看看JSTL是否以预期的方式完成了它的工作。如果是这样的话,那么问题就超出了JSP/JSTL的范围,在使用硬编码的JS变量时也会遇到同样的问题。我正在一个表中显示
结果的内容,刚刚注意到time在最后得到了
.0
。也许是这样,或者我应该改变
formatDate
中的模式吗?那么JSTL已经正确地完成了打印/格式化JS date变量的工作,您的新问题超出了问题的范围。若你们不明白,只需按右上角的[提问]按钮。