【发布时间】:2018-05-02 19:04:53
【问题描述】:
我试过非常不得不用dateformatter解析字符串到日期,字符串的格式是这样的--- 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* 对我来说,顺序完全错误,我尝试了多种调试方式但徒劳无功。
谁能告诉我出了什么问题??
非常感谢!
【问题讨论】:
-
这太奇怪了。开裂
-
你期望什么输出?
-
@cse 正是我要问同样的问题。
-
如果你能更清楚你的问题
-
假设这是一个出生日期,我建议你使用
LocalDatefromjava.time。这是一个没有时间和时区的日期,因此您可以摆脱这些麻烦。并在没有显式格式化程序的情况下解析您的字符串,从而使您免于更多麻烦。要在不是很新的 Android 上使用java.time,您需要 the ThreeTenABP library。 PS 在您的代码中,sdf.format(this.dob);在您不获取其返回值时似乎是多余的。
标签: java android simpledateformat