将字符串解析为 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
的官方文档
字符串的格式为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
的官方文档