论坛首页 入门技术论坛

日期format时,“MM”与“mm”为何不同?

浏览 2921 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-21  

项目中,默认的日期格式为“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”结果不对,且每运行一次结果有变?

   发表时间:2009-12-22  
   小m是 小时中的分钟数,大写的M才是年中的月份
0 请登录后投票
   发表时间:2010-05-07  
mm 是分钟 哎
0 请登录后投票
   发表时间:2010-06-09  
java是大小写敏感的,不要想当然觉得mm和MM是一样的
至于时间的字段,可以翻看api,都有说明
0 请登录后投票
   发表时间:2010-06-10  
新手,对日期大小写 更加理解了。谢谢。
0 请登录后投票
   发表时间:2010-06-15  
一个是24小时制的,一个是12小时制的
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics