2015-05-21 34 views
2

我可是從一個輸入嘗試使用Servlet的

<form method=POST action="ResultServlet"> 
       Enter date 
       <input type="datetime" name="StartEvent" > 
       <input type="datetime" name="StopEvent" > 


      <input type="submit" name="PostThis" value="Show" class="f-halfbutton"> 

正從我的JSP中的字符串,我試圖格式化或將其解析爲日期,以便我可以把它送到我的數據庫格式的字符串的日期。

String stopDateStr = request.getParameter("StopEvent"); 
     SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmssZ"); 
     Date to = new Date(); 
     try { 
      to = sdf.parse(stopDateStr); 

     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     System.out.println(from); 
     System.out.println(to); 

當我打印字符串,我得到這樣的2015年5月19日15時19分12秒

我想保持相同的格式正確的格式只是將其更改爲日期,而不是字符串。 但我的格式我的字符串或日期,它應該是後現在看起來是這樣 週一1月19日15點19分12秒CET 2015年

我想在這裏閱讀解決方案,但沒有什麼似乎爲我工作。

我一直在閱讀oracle上的simpledateformatter知道用什麼字母來獲取數字,但似乎沒有工作。

有人爲此得到了很好的解決方案嗎?

+0

我已經嘗試過不同勢樣的格式甚至一個sohuld是corrent 「yyyy-mm-dd hh:mm:ss」,但仍然是相同的輸出結果Mon Jan 19 15:19:12 CET 2015 – Trottoarne

+0

該格式不會奇蹟般地附加到Date變量。實際上,它包含的時間幾乎只有自紀元開始以來的毫秒數。如果你想格式化它,你需要另一個SimpleDateFormat實例來格式化日期。但是爲什麼要麻煩呢,如果你想把它插入到數據庫中,Date變量就是你所需要的。 –

回答

1

將格式插入數據庫時​​格式無關緊要。您只需要從字符串中獲取正確的日期,然後將其插入到數據庫中。當你從數據庫中檢索值,你可以反正格式化你喜歡...

您可以使用這樣的事情:

String date = "your_date_formatted"; 
Date dt= new SimpleDateFormat("date_format").parse(date); 
java.sql.Date sqlDate = new java.sql.Date(dt.getTime()); 

Connection con = ...; 
PreparedStatement p = con.prepareStatement("insert into table(date_field) values(?))"); 
p.setDate(1, dt);