将java对象转换为Date或DateTime

时间:2012-12-14 11:58:59

标签: java date datetime inner-join nativequery

我有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。 有什么建议吗?

1 个答案:

答案 0 :(得分:10)

您不必解析来自SQL查询的日期。它们应该作为Date或Timestamp实例返回。向我们展示您的查询。

你可以回复java.sql.Date个实例,但是你通过用空字符串连接它们将它们转换为字符串:

obj[7] + ""

只做

Date createdDate = (Date) obj[7];