我在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
}
...
很明显,它已被“转换”为日期,但并未显示为人类可读的格式。在日期对象上执行toString()
只会导致该字段显示为Invalid Date
。
BE27C51E8BF185A2FB3AA9164EC0C647
)。可能会发生什么?答案 0 :(得分:0)
createdAt: new java.util.Date(s.creationTime)
id
。有关详细信息,请参阅Retrieve "id" field values via VisualVM OQL query。作为解决方法,您可以使用s["wrapped-object"].getValueOfField("id")
代替s.id.toString()
通过以上更改,您的查询应为:
select { id: s["wrapped-object"].getValueOfField("id"),
createdAt: new java.util.Date(s.creationTime).toString() }
from org.apache.catalina.session.StandardSession s