Java 在Android中,将字符串解析为date会给出完全不同的日期
字符串的格式为Java 在Android中,将字符串解析为date会给出完全不同的日期,java,android,date-parsing,Java,Android,Date Parsing,字符串的格式为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); } cat
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
格式化后,我得到了2017年1月7日的Sat
我期望的值是2007年7月17日星期五,问题在这一行
date = new SimpleDateFormat("dd/mm/yyyy").parse(temp);
在SimpleDataFormat中,月份用M表示,而不是M
M-年中的月份(上下文相关)
以小时计的分钟
将此更改为
date = new SimpleDateFormat("dd/MM/yyyy").parse(temp);
有关更多详细信息,请查看的官方文档查看javadoc:-小写
m
解析会议记录。要解析月份,请使用大写的M
Yes@Hugo I错过了日期中区分大小写的数据。感谢您为您的任务指出一个更现代的解决方案,因为您在Android上,所以获取并执行LocalDate.parse(temp,DateTimeFormatter.of模式(“d/MM/yyyy”)
。这也会发现你(非常常见)的小写mm
错误(并给你一条相当隐晦的错误信息,但总比没有错误信息好)。我真傻,错了。谢谢这是一个非常非常常见的错误。