2012-02-17 72 views
2

我嘗試解析字符串到日期它通常工作正常,但是當我使用國際化與& locate = fr然後它將拋出java.lang.IllegalArgumentException。在國際化過程中解析字符串gwt

聽到是我想從字符串中獲取日期的代碼的和平。

public static Date toDate(String date){ 
    DateTimeFormat format = DateTimeFormat.getFormat("MM/dd/yy h:mm:s a"); 
    return format.parseStrict(date); 
} 

我試着轉換「02/02/2012 10:10:25 AM」。

請幫幫我。

回答

0

嘗試使用parse()代替parseStrict()。如果您使用parse()日期從寬鬆地解析,那麼無效的日期將根據需要被包裹。並且對parseStrict()日期進行嚴格分析,因此無效日期將導致IllegalArgumentException。看到你的日期使用不同的格式。 02/02/2012其對應於MM/dd/yyyyMM/dd/yy

public Date parseStrict(java.lang.String text) throws java.lang.IllegalArgumentException 

解析文本以產生日期值。如果文本爲空或分析不消耗 文本的所有字符,則引發IllegalArgumentException爲 。日期嚴格分析,因此無效的 日期將導致IllegalArgumentException。

+0

我已經嘗試過'parse()',但它每次都拋出相同的異常。我是因爲你只是在'MM/dd/yyyy'中轉換完成的,但是我想要日期和時間,所以你只需要嘗試'MM/dd/yyyy hh:mm:ss a',而不是拋出異常。 – 2012-02-18 05:28:39

+0

給你完全的例外 – 2012-02-18 05:47:11

0

,而不是標準DateTimeformat使用com.google.gwt.i18n.client.DateTimeFormat

+0

我已經使用'com.google.gwt.i18n.client.DateTimeFormat' – 2012-02-18 05:30:02