我有List<Object[]> resultList = entityManager.createNativeQuery(SOME QUERY).getResultList();
某些查询是内部联接表的结果。
当我尝试访问Object []的元素时,其中一个是我试过的日期
for(Object[] obj : resultList)
{
Date createdDate = obj[7] !=null ? new Date(Long.valueOf(obj[7] + "")) : null;
}
这给了明显的异常nested exception is java.lang.NumberFormatException: For input string: "2012-11-20"
我将Date更改为DateTime get TO_CHAR(createdDate,'DD.MM.YYYY:HH24:MI:SS')
并尝试了下面的代码
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date createdDate = null;
try
{
createdDate = df.parse(obj[7] + "");
}
catch (ParseException e)
{
e.printStackTrace();
}
这种方法结果createdDate = null。 有什么建议吗?
答案 0 :(得分:10)
您不必解析来自SQL查询的日期。它们应该作为Date或Timestamp实例返回。向我们展示您的查询。
你可以回复java.sql.Date
个实例,但是你通过用空字符串连接它们将它们转换为字符串:
obj[7] + ""
只做
Date createdDate = (Date) obj[7];