我在 visualvm 上针对堆转储运行以下 oql 查询,并希望将该creationTime
字段格式化为日期时间字段(其存储为Long
)。
select { id: s.id.toString(), createdAt: new Date(s.creationTime) }
from org.apache.catalina.session.StandardSession s
上面的查询列出了以下输出(截断)
{
id = 1010827848,
createdAt = sun.org.mozilla.javascript.internal.NativeDate@66106135
}
...
很明显,它已被“转换”为日期,但并未将其显示为人类可读的格式。对日期对象执行 atoString()
只会导致字段显示为Invalid Date
。
- 是否可以将 Long 字段格式化为 Date 字段?
- 使用 VisualVM 查询时,id 字段的值也是关闭的。当我使用 Eclipse Analyzer 查询同一个堆转储时,我看到了正确的值(即
BE27C51E8BF185A2FB3AA9164EC0C647
)。那会发生什么?