不可稀释的日期,在Java中有额外的数字

这段代码有什么问题?我试图解析几个月和几个月之间的日期格式.
import java.text.SimpleDateFormat;

class Main {
    public static void main(String[] args) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy'0'MMdd");
        try {
            Date date = format.parse("201600101");
            System.out.println(date);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
    }
}

这将输出不可稀释日期:“201600101”.如果我将“0”更改为数字[ ‘X’和format.parse(“2016X0101”)]这将工作.

解决方法

正如彼得·劳瑞(Peter Lawrey)所说,Java认为“2016年”是一年.您可以通过将“201600101”修改为例如2016-00101来解决问题,并将格式模式重构为
SimpleDateFormat format = new SimpleDateFormat("yyyy-'0'MMdd");

这将解析你的日期.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...