首页 > 解决方案 > 为什么 SimpleDateFormat 用错误的月份和日期解析日期?

问题描述

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM DD HH:mm:ss z yyyy");
try {
      String d1 = list.get(position).getTaskTime(); //here d is "Tue Nov 06 15:37:51 EST 2016"
      date = sdf.parse(d);
      String d2=date.toString();
      Log.d("demo", d2); //here d2 is "Sat Jan 06 15:37:51 EST 2016"
  } catch (ParseException e) {
      e.printStackTrace();
     }

PS:我使用日历类添加了 10 个月并正确设置了日期,这有点像 hack,但可以工作。但是,我想知道我的代码有什么问题。

标签: javaandroidstringdatesimpledateformat

解决方案


DD是错的。D是一年中的一天。一年中的第六天是 1 月 6 日。

你应该使用dd.

文档:SimpleDateFormat


推荐阅读