Java 将字符串转换为日期格式后,月份显示不同

Java 将字符串转换为日期格式后,月份显示不同,java,android,simpledateformat,date-parsing,date,Java,Android,Simpledateformat,Date Parsing,Date,我正在将字符串转换为日期格式,年份和日期显示正确,但月份显示不同 String s = "2018-08-29" try { DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD", Locale.ENGLISH); Date parse = formatter.parse(s); long time = parse.getTime(); }catch (Parse

我正在将字符串转换为日期格式,年份和日期显示正确,但月份显示不同

String s = "2018-08-29"
try 
    {

        DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD", Locale.ENGLISH);

        Date parse = formatter.parse(s);

        long time = parse.getTime();

    }catch (ParseException e) {

         e.printStackTrace();

    }

输出:周一1月29日00:00:00 GMT+2018年5:30

问题在于您的格式

D
代表一年中的一天,但您需要使用
D
获取月份中的一天

这应该是这样的:

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);


我希望这会有帮助

问题出在你的格式上

D
代表一年中的一天,但您需要使用
D
获取月份中的一天

这应该是这样的:

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);


我希望它能有所帮助

很抱歉,我一开始错过了它。你的日期应该是简单的字母“dd”而不是“dd” DD是一年中的一天
dd是一个月的日期

很抱歉,我刚开始没看到。你的日期应该是简单的字母“dd”而不是“dd” DD是一年中的一天
dd是月份中的日期

打印报表在哪里?显示整个代码,PayExoDeX是PayScript语句解析。ToStRun()作为一个考虑,扔掉长期过时和臭名昭著的麻烦代码< SimpleDateFormat >代码>和朋友,并添加到Android项目中,以便使用<代码> java.时间>代码>,java java日期和时间API。和它一起工作真是太好了。打印报表在哪里?显示整个代码,PayExoDeX是PayScript语句解析。ToStRun()作为一个考虑,扔掉长期过时和臭名昭著的麻烦代码< SimpleDateFormat >代码>和朋友,并添加到Android项目中,以便使用<代码> java.时间>代码>,java java日期和时间API。和你一起工作真是太好了。