Java中额外数字的无法解析日期

tok*_*tok 10 java simpledateformat

这段代码有什么问题?我正在尝试解析年份和月份之间为0的日期格式.

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());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出Unparseable日期:"201600101".如果我将'0'更改为除数字之外的任何内容[例如'X'和format.parse("2016X0101")],这将起作用.

Ser*_*aev 3

正如 Peter Lawrey 所说,Java 将其视为'20160'一年。"201600101" 例如,您可以通过修改来解决您的问题,2016-00101并将格式模式重构为

SimpleDateFormat format = new SimpleDateFormat("yyyy-'0'MMdd");
Run Code Online (Sandbox Code Playgroud)

这将解析您的日期。