我有List<Object[]> resultList = entityManager.createNativeQuery(SOME QUERY).getResultList();
某些查詢是內部連接表的結果。 當我嘗試訪問對象的元素[],其中一個是日期我試着這樣做將java對象轉換爲日期或日期時間
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"
我改變了日期爲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();
}
這種方法導致createdDate = NULL。 有何建議?
你不應該來解析從SQL查詢中查詢cominf。他們應該回來作爲日期或時間戳實例。向我們顯示您的查詢。 –
'選擇project.project_id,project.business_id,project_status_type.project_status_desc,project.create_dtm, project.update_dtm,從project_status_type INNER JOIN上project_status_type.project_status_type_id = project.project_status_type_id和project.project_id = 12345工程;' –
是什麼您存儲日期的數據庫列類型?它是DateTime還是VARCHAR?如果它是DateTime作爲@JBNizet提到你只需要將你的對象轉換成一個java.sql.Date。如果它是VARCHAR並且您知道該代碼(例如2012-11-20),那麼下面的代碼片段可能會有用。 – nikkatsa