GWT DateTimeFormat返回错误的日期

时间:2013-04-23 15:07:09

标签: date gwt datetime

我有以下代码

        String test = "21/04/2013";
        fmt = DateTimeFormat.getFormat("MM/dd/yyyy");
        Date dateTest = fmt.parse(test);
        Window.alert(fmt.format(dateTest));

警告框显示日期

  09/04/2014

而不是

  21/04/2013

为什么?

3 个答案:

答案 0 :(得分:5)

正如其他人已经说过的那样,这是因为你的模式。他们不能说的是为什么它的行为方式。

21/04/2013解析为MM/dd/yyyy时,DateTimeFormat会将日期分解为:

Month  Day of month  Year
  21        4        2013

然后它会调整内容以生成有效日期。为此,部分会在12截断(以便临时日期为 2013年12月4日),其余部分( 21 - 12然后添加= 9 ),导致 9月。 2014年第4期,根据您的格式显示为09/04/2014

答案 1 :(得分:2)

您想展示21/04/2013,但格式为MM/dd/yyyy。 它应该是dd/MM/yyyy

所以改变它:

String test = "21/04/2013";
fmt = DateTimeFormat.getFormat("dd/MM/yyyy");
Date dateTest = fmt.parse(test);
Window.alert(fmt.format(dateTest));

答案 2 :(得分:2)

你正在扭转日子和月份。

String test = "21/04/2013";
fmt = DateTimeFormat.getFormat("dd/MM/yyyy");
Date dateTest = fmt.parse(test);
Window.alert(fmt.format(dateTest));