项目中,默认的日期格式为“2009-12-08”,某个页面上时间格式想改为“09.12.08”,这个任务分给了我。 在修改时,遇到这么一个问题:设定pattern时用“MM”跟“mm”不一样。
如下所示:
- 默认为, <fmt:formatDate value="${conStream.appplyDate}" pattern="yyyy-MM-dd"/>, 结果是“2009-12-08”.
- 用“mm”时, <fmt:formatDate value="${conStream.appplyDate}" pattern="yy.mm.dd"/>, 结果是“2009-00-08”!
- 用“MM”时, <fmt:formatDate value="${conStream.appplyDate}" pattern="yy.MM.dd"/> 结果是“09.12.03”, 8错!
那么为什么会这样呢?
自己用java.text.SimpleDateFormat类做了如下实验:
public static void main(String[] args) {
java.util.Date today = new java.util.Date();
java.text.SimpleDateFormat df;
String returnValue = "";
df = new java.text.SimpleDateFormat("yy.mm.dd");
returnValue = df.format(today);
System.out.println(returnValue); // 09.27.21, 09.33.21, 09.34.21, 注意这个值, 运行了三次,三次输出的结果不同。
df.applyPattern("yy.MM.dd");
System.out.println(df.format(today)); // 09.12.21
}
更奇怪的问题出现了,
运行了三次,“
mm
”生成结果还不一样。
谁能来搞定这个“mm”呢?为什么用“mm”结果不对,且每运行一次结果有变?