将java对象转换为Date或DateTime

tin*_*iry 1 java datetime date 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;
} 
Run Code Online (Sandbox Code Playgroud)

这给了明显的例外nested exception is java.lang.NumberFormatException: For input string: "2012-11-20" 我将Date更改为DateTime得到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();
    }
Run Code Online (Sandbox Code Playgroud)

这种方法结果createdDate = null.有什么建议 ?

JB *_*zet 11

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

您可以实际java.sql.Date返回实例,但是您通过将它们与空字符串连接将它们转换为字符串:

obj[7] + ""
Run Code Online (Sandbox Code Playgroud)

做就是了

Date createdDate = (Date) obj[7];
Run Code Online (Sandbox Code Playgroud)