我有以下代码
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
为什么?
答案 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));