1

我有以下代码

        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

为什么?

4

3 回答 3

5

正如其他人已经说过的,这是因为你的模式。他们没有说的是为什么它会这样。

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

月 日 年
  21 4 2013

然后它会调整事情以使日期有效。为此,Month部分被截断12(因此临时日期为Dec 4th, 2013),然后添加剩余部分(21 - 12 = 9),导致Sept. 4th 2014,根据您的格式显示为09/04/2014.

于 2013-04-23T16:24:25.017 回答
2

你正在颠倒日期和月份。

String test = "21/04/2013";
fmt = DateTimeFormat.getFormat("dd/MM/yyyy");
Date dateTest = fmt.parse(test);
Window.alert(fmt.format(dateTest));
于 2013-04-23T15:13:44.517 回答
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));
于 2013-04-23T15:11:06.703 回答