2012-12-20 302 views
3

即時得到的SQL Server日期時間(2013年1月1日)形成的myBeanSqlRowSet解析日期時間到JAVA日期

while (rs.next()) { 
myBean.setDateProp(rs.getString(4)); 
} 

類型DatePropjava.util.Date,是有辦法(1 Jan 2013)轉換成Java日期表示。

我曾嘗試下面的代碼

SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss.SSS"); 
Date date=new Date();   
    try { 
     date = sdf.parse("1 Jan 2013");   
    } catch (Exception e) { 
     e.printStackTrace(); 

    }  

,我也得到了ParseException

重度:java.text.ParseException:無法解析的日期: 「2013年1月1日」

任何方向......

+0

_i曾嘗試以下code_發生了什麼後?你有什麼異常? –

+3

爲什麼你使用rs.getString()而不是rs.getDate()? – Charlie

+1

當你的日期字符串看起來像'2013年1月1日'時,爲什麼你使用格式'dd-MMM-yyyy HH:mm:ss.SSS'?很明顯,字符串的格式不是你正在使用的。 – Jesper

回答

6

試試這個 -

SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy"); 
Date date=new Date();   
try { 
    date = sdf.parse("1 Jan 2013");   
}catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

,幾乎工作的解析做OK,但是當它被轉換爲Java迄今爲止,它表明我'星期二1月1日00:00:00 PKT 2013' – dakait

+0

什麼辦法可以格式化輸出太'1月1日2013' – dakait

+0

不打印'java.util.Date'對象。打印格式化的字符串。 LYK - '的System.out.println(sdf.format(日期));' –

2

嘗試

while (rs.next()) { 
myBean.setDateProp(rs.getDate(4)); 
} 
+0

我試過了,但數據庫服務器格式是日期時間,所以它給了我錯誤,沒有在索引4找到日期 – dakait

+0

聲音可疑。無論如何,請嘗試rs.getTimestamp(4)。 –

1

您需要修改日期格式字符串

SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy"); 

爲您的日期字符串的格式如下

2
@Test 
    public void test() throws ParseException { 

     String dateString = "1 Jan 2013"; 
     String dateString2 = "11 Jan 2013"; 
     SimpleDateFormat sdf = new SimpleDateFormat("d MMM yyyy"); 


     sdf.parse(dateString); 
     sdf.parse(dateString2); 
    }