如何将 MySQL 时间戳转换为 Javascript 日期?
How to convert MySQL Timestamp to Javascript date?
我想在 Spring MVC 应用程序的 .jsp 页面上显示 Google 图表(折线图)。数据是从 MySQL 数据库中检索的,因此我需要将 YYYY-MM-DD HH:MM:SS
格式转换为 Javascript 的日期。
数据库由 Hibernate 创建。 Reading
实体有一个类型为 java.sql.Timestamp
的 time
字段,它在数据库中存储为 DATETIME
。
results
是一个通过控制器传递给 .jsp 的 Iterable<Reading>
对象。它被正确传递(我也将数据显示为 table)。
我正在尝试使用建议的解决方案 here,但它不起作用。
这是我试图填充图表的代码:
<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>
图表未显示。
事实:
- JDBC的
java.sql.Timestamp
is a subclass of java.util.Date
.
- JSTL 有一个
<fmt:formatDate>
用于将 java.util.Date
转换为 String
。
- JavaScript
Date
构造函数可以取a.o。 ISO8601 时间格式的字符串。
合计:
<c:forEach items="${results}" var="reading">
<fmt:formatDate var="time" value="${reading.time}" pattern="yyyy-MM-dd'T'HH:mm:ss" timeZone="UTC" />
var d = new Date("${time}");
// ...
</c:forEach>
或者,只需在控制器中使用合适的 JSON 格式化程序将 results
转换为 JSON,然后打印它,就好像它是一个 JS 变量一样 var data = ${data};
。另见 a.o。 How to access array of user defined objects within <script> in JSP?
与具体问题无关:确保你的模型是java.util.Date
类型。您的模型中不应包含 java.sql.*
类型的属性。如果您使用的是纯 JDBC,只需将 ResultSet#getTimestamp()
直接向上转换为 java.util.Date
。另见 a.o。 Handling MySQL datetimes and timestamps in Java.
我想在 Spring MVC 应用程序的 .jsp 页面上显示 Google 图表(折线图)。数据是从 MySQL 数据库中检索的,因此我需要将 YYYY-MM-DD HH:MM:SS
格式转换为 Javascript 的日期。
数据库由 Hibernate 创建。 Reading
实体有一个类型为 java.sql.Timestamp
的 time
字段,它在数据库中存储为 DATETIME
。
results
是一个通过控制器传递给 .jsp 的 Iterable<Reading>
对象。它被正确传递(我也将数据显示为 table)。
我正在尝试使用建议的解决方案 here,但它不起作用。
这是我试图填充图表的代码:
<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>
图表未显示。
事实:
- JDBC的
java.sql.Timestamp
is a subclass ofjava.util.Date
. - JSTL 有一个
<fmt:formatDate>
用于将java.util.Date
转换为String
。 - JavaScript
Date
构造函数可以取a.o。 ISO8601 时间格式的字符串。
合计:
<c:forEach items="${results}" var="reading">
<fmt:formatDate var="time" value="${reading.time}" pattern="yyyy-MM-dd'T'HH:mm:ss" timeZone="UTC" />
var d = new Date("${time}");
// ...
</c:forEach>
或者,只需在控制器中使用合适的 JSON 格式化程序将 results
转换为 JSON,然后打印它,就好像它是一个 JS 变量一样 var data = ${data};
。另见 a.o。 How to access array of user defined objects within <script> in JSP?
与具体问题无关:确保你的模型是java.util.Date
类型。您的模型中不应包含 java.sql.*
类型的属性。如果您使用的是纯 JDBC,只需将 ResultSet#getTimestamp()
直接向上转换为 java.util.Date
。另见 a.o。 Handling MySQL datetimes and timestamps in Java.