将字符串解析为 date 在 Android 中给出完全不同的日期

Parsing a string to date gives a completely different date in Android

字符串的格式为dd/mm/yyyy

我正在使用以下代码进行解析:-

Dateformat dateformatter = new SimpleDateFormat("EEE, MMM d, ''yy");
dateformatter.setLenient(false );

String temp = "7/07/2017"
Date date = null;
try {
  date = new SimpleDateFormat("dd/mm/yyyy").parse(temp);
}
catch(ParseException e){
  e.printStackTrace();
}

dateformatter.format(date);

我为 date 得到的值是 Sat Jan 07 00:07:00 GMT + 10:00 2017

格式化后我得到 Sat, Jan 7, '17

我期望的值是FRI Jul 07, '17

问题出在这一行

date = new SimpleDateFormat("dd/mm/yyyy").parse(temp);

在 SimpleDateFormat 中,月份用 M 表示,而不是 m。

M - Month in year (context sensitive)

m - Minute in hour

将此更改为

date = new SimpleDateFormat("dd/MM/yyyy").parse(temp);

详情请查看SimpleDateFormat

的官方文档