Java Android日期格式化程序问题

Java Android日期格式化程序问题,java,android,simpledateformat,Java,Android,Simpledateformat,我试图通过dateformatter将字符串解析为date,字符串的格式如下--2018-06-02T00:00:00+11:00,我想将其解析为date类型 所以我就这样写 public Resident(String address, String dob, String email, String postcode, String firstname, String surname, String provider, String familynumber) this.ad

我试图通过dateformatter将字符串解析为date,字符串的格式如下--2018-06-02T00:00:00+11:00,我想将其解析为date类型

所以我就这样写

    public Resident(String address, String dob, String email, String postcode, String firstname, String surname, String provider, String familynumber)
    this.address = address;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    try{
        dob =  dob + "T00:00:00+11:00";//the dob is a string of "2018-06-02"
        this.dob = sdf.parse(dob);
        sdf.format(this.dob);
    }
    catch (ParseException e) {
        e.printStackTrace();
    }

       ...

但是,如上所示,它生成*——Fri Jun 01 23:00:00 GMT+10:00 2018*对我来说,顺序完全错误,我尝试了许多方法进行调试,但都没有成功。
有人能告诉我出了什么问题吗??

非常感谢

没有什么不对的。您已成功解析日期

图片中的
Fri Jun 01 23:00:00 GMT+10:00 2018
是通过调试器调用
this.dob.toString()
生成的

事实上,调试程序时,它将隐式调用对象的
toString()
,以显示当前值。
Date
对象的
toString
方法的格式如下:
Fri Jun 01 23:00:00 GMT+10:00 2018
,它与
SimpleDataFormat
无关,如下所示:


这太奇怪了。破解你期望的输出是什么?@cse正是我要问的同一个问题。如果你能稍微澄清一下你的问题,假设这是一个出生日期,我建议你使用
LocalDate
from
java.time
。这是一个没有时间和时区的约会,所以你不用为这些烦恼。并在没有显式格式化程序的情况下解析字符串,从而避免了更多的麻烦。在不太新的Android上使用
java.time
。代码
sdf.format(this.dob)中的PS
在您没有获取其返回值时似乎是多余的。我希望是这样,但当我通过Gson将其转换为JSON进行测试时,它仍然会生成Fri Jun 01 23:00:00 GMT+10:00 2018,对我来说,这显然不是我想要的want@Damon你问的问题不止一个。解析中出现了什么问题,如何格式化,如何通过Gson转换为JSON。如果你一次只问一个问题,对我们来说就容易多了。你查过了吗?@OleV.V。对不起,我想这是因为日期格式的问题。@Damon在您发布的图片中,日期已被成功解析。下一个过程与
SimpleDataFormatter
无关!