2014-05-15 71 views
0

我想將日期格式化結果從數據庫格式化爲日期。 ( 「DD」)。查詢結果的格式如下,2014-05-17 00:00:00我只想提取「17」,我該如何實現?這是我的代碼。以毫秒爲單位設置日期的格式

String query = "SELECT DISTINCT date FROM Attendance;"; 
      Object[][] queryResult = connectToDB(headerQuery); 

      for(int x = 0; x < queryResult.length; x++){ 
       for(int y=0; y < queryResult[x].length; y++){ 
        Object temp = queryResult[x][y]; 
        SimpleDateFormat format = new SimpleDateFormat("dd"); 
        System.out.print(format.format(temp)); 
        System.out.println(temp+ "<-----"); 
       } 
       System.out.println("---"); 
      } 

這是我的錯誤

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date 

更新:我已經改變了對環到這一點:

for(int x = 0; x < queryResult.length; x++){ 
       for(int y=0; y < queryResult[x].length; y++){ 
        String temp = (queryResult[x][y]).toString(); 
        SimpleDateFormat format = new SimpleDateFormat("dd"); 
        Date date = (Date) format.parse(temp); 

        System.out.println(date+ "<-----"); 
       } 
       System.out.println("---"); 
      } 

,但它仍然沒有格式化的日期;

+0

似乎'Object temp = headerQueryResult [x] [y];'是類型'String'。 System.out.println(temp +「<-----」)的輸出是什麼? '? –

+0

請檢查更新@MenoHochschild – rocky

回答

0

好吧,你試圖格式化一個字符串。也就是說,temp是一個字符串,你不能將它傳遞給format。您需要將該字符串轉換爲日期,然後將其傳遞到formatHere's how.

但是,更好的是,您應該從查詢中返回Date而不是String。這會讓你的生活更輕鬆。那麼你不需要改變代碼的任何其他部分。

向我們顯示您的connectToDB。假設它使用JDBC,您應該通過調用ResultSet.getDate

+0

你能檢查我的更新嗎? – rocky

+0

@ user3615601不會改變任何東西。你只是輸出了結果,你需要*把輸入改成'format',而不是輸出。 –

0

得到結果爲什麼不使用SQL來提取日期部分?

SELECT DatePart('d', [date]) as theDay FROM Attendance 
相關問題