【问题标题】:SimpleDateFormat Wrong value in JavaSimpleDateFormat Java 中的错误值
【发布时间】:2012-11-12 09:42:22
【问题描述】:

我正在尝试将日历值设置为其基数 (0),以便稍后将其与另一个值进行比较。当我尝试打印结果时,我在使用 SimpareDateFormat 时得到了月份值。有什么想法吗?我做得对吗?

SimpleDateFormat DataDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat DataDateFormatMonth = new SimpleDateFormat("MM");

Calendar cld = Calendar.getInstance();
cld.set(1, 1, 1);

System.out.println(DataDateFormat.format(cld.getTime()));       //  ->  0001-02-01
System.out.println(DataDateFormatMonth.format(cld.getTime()));  //  ->  02      !!!!
System.out.println(cld.get(Calendar.MONTH));                    //  ->  1

【问题讨论】:

    标签: java date-format simpledateformat


    【解决方案1】:

    Calendar API 中的月份间隔为 0 到 11。

    JAN--->0
    .......
    DEC--->11
    

    Calendar.MONTH 将返回一个 int 值 (2) 在您的情况下是 MM 的值。即,Calander.MONTH 是一个常数

    崩溃:

    System.out.println(cld.get(Calendar.MONTH));                    //  ->  1
    Calaender.MONTH--- 2
    cld.get(2); will get the value at the given calendar field. (in this case 2, your month field whihc is 1) 
    

    例如将您的最后一个打印语句更改为

     Calendar cld = Calendar.getInstance();
     cld.set(10, 10, 1100); (format is MM,dd,YYYY)
     System.out.println(cld.get(Calendar.YEAR));             
    

    输出将为 10(它将以格式返回月份值),因为 Calendar.YEAR 将返回 1

    【讨论】:

      【解决方案2】:

      calander 中的月份以 0 开头。一月 -> 0 月,二月 -> 1... 十二月 ->11

      【讨论】:

        【解决方案3】:

        来自 set() 的API 参数:

        • year - 用于设置 YEAR 时间字段的值。
        • month - 用于设置 MONTH 时间字段的值。 月份值为 基于 0。例如,0 表示一月。
        • date - 用于设置 DATE 时间字段的值。

        【讨论】:

        • 这使得将其他语言的源代码翻译成 Java 变得特别容易。花了我一些时间来找出文字 4Calendar.APRIL 之间的区别。谢谢你,甲骨文。顺便说一句,您的链接已损坏。
        • 谢谢。修复链接
        【解决方案4】:

        这就是你想要得到的,因为new SimpleDateFormat("MM") 将格式化输入日期并只返回MM 值,即月份。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-16
          • 1970-01-01
          • 2018-09-20
          • 2011-12-18
          相关资源
          最近更新 更多