Java Date()给出错误的日期

for*_*123 3 java date

我有一个简单的方法,应该获取当前日期,将其放入某种格式,然后将其作为String返回.到目前为止一切都很好(最后一次尝试在1月31日左右),但出于某种原因,当我今天尝试它时它返回字符串"2013-02-43".

现在显然2月份还没有43天,我不知道它为什么要回归这个.我已经到处寻找解决方案,但它们似乎都不符合我所遇到的具体问题.这是代码:

public String getDate(){
    DateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD");
    Date date = new Date();

    return dateFormat.format(date);
}
Run Code Online (Sandbox Code Playgroud)

只是为了记录我尝试使用Calendar.getInstance()等具有相同的结果.有趣的是,当我尝试

get(Calendar.DAY_OF_MONTH) 
Run Code Online (Sandbox Code Playgroud)

它返回12,所以某些地方的数字是正确的,但两者之间出了问题.

谢谢

Chr*_*ell 16

DD表示一年中的某一天,而dd表示每月的日期.你想要yyyy-MM-dd(区分大小写).

public String getDate(){
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();

    return dateFormat.format(date);
}
Run Code Online (Sandbox Code Playgroud)

  • 不应该'YYYY`也被'yyyy`取代? (4认同)