我猜这是一个 JDBC 问题,因为我看到了类似的行为。
在我的情况下,该列被定义为
`last_edit` datetime DEFAULT NULL
JDBCgetTimestamp()
方法(如正确的 getter 所建议的那样)正在返回{}
.
我发现使用该getObject()
方法以 ISO 字符串格式返回了预期的 DATETIME 值(对于我的用例来说已经足够好了)。
刚刚注意到您说您正在使用“mysqljs”,因此不确定此修复是否与您的情况相关,因为 JDBC 部分已被抽象掉......
更新:由于某种原因getObject()
,返回的时间比数据库中显示的时间 (UTC) 多 7 小时。
检查的输出getTimestamp()
表明它是一个带有 getter 和 setter 的对象(在 'stringify-cation' 之后不存在)并编写了一个快速转换器。
function convert_ts_(ts) {
var date = (ts.getYear() + 1900) + '-' + ((ts.getMonth() + 1) > 9 ? ts.getMonth() + 1 : '0' + (ts.getMonth() + 1)) + '-' + (ts.getDate() > 9 ? ts.getDate() : '0' + ts.getDate());
var time = (ts.getHours() > 9 ? ts.getHours() : '0' + ts.getHours()) + ':' + (ts.getMinutes() > 9 ? ts.getMinutes() : '0') + ":" + (ts.getSeconds() > 9 ? ts.getSeconds() : '0' + ts.getSeconds());
return date + 'T' + time;
}
这将返回带有零填充的“ YYYY-MM-DD
T ”格式的日期HH:MM:SS