日期字符串解析问题(由于从0到11的月份)

mos*_*osk 1 java date simpledateformat

代码

    String strDate = "2010-12-01";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
    Date parsedDate = sdf.parse(strDate);
    System.out.println(parsedDate);
Run Code Online (Sandbox Code Playgroud)

将依赖您的语言环境生成以下输出:

Fri Jan 01 00:12:00 CET 2010
Run Code Online (Sandbox Code Playgroud)

日期没有被正确解析,因为我期待第一个十二月而不是一月一日.我知道,月份从0到11编号,所以12月份变为0.

我有几种解决方案可以解决这个问题,但是所有这些解决方案都会产生至少3-4行代码.所以我的问题是:

解决这个"问题"最好的方法是什么?

我无法想象解析一个简单的日期需要超过2-3行......

//编辑:这个问题让我感到羞耻.原谅我.thx伙计们

Jig*_*shi 9

改变yyyy-mm-ddyyyy-MM-dd


M   Month in year   Month   July; Jul; 07  

m   Minute in hour  Number  30
Run Code Online (Sandbox Code Playgroud)

看到


Boh*_*ian 5

您的日期格式不正确:月份MM(不是mm,几分钟).试试这个:

"yyyy-MM-dd"
Run Code Online (Sandbox Code Playgroud)

你获得一月份的原因是你没有给解析器一个月(你给了一年一分钟的时间).1月,即第一个月,如果输入未提供,则为分配给日期的默认月份.在12解析到分钟字段(相当明显)GOT