Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中,将字符串解析为date会给出完全不同的日期_Java_Android_Date Parsing - Fatal编程技术网

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
错误(并给你一条相当隐晦的错误信息,但总比没有错误信息好)。我真傻,错了。谢谢这是一个非常非常常见的错误。