2012-02-17 77 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