2014-05-15 55 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 
相关问题