在Android中解析yyyy-MM-DD字符串yyyy-MM-DD?

时间:2017-02-05 11:16:42

标签: java android simpledateformat

String startDateStr = "2017-02-03"
DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD",Locale.US);
Date date = (Date)formatter.parse(startDateStr);    

2017-02-03 日期被解析为 Tue Jan 03 00:00:00 GMT + 05:45 2017

我有没有?  想念什么?

更新

我需要一个字符串转换为日期对象 同时保持相同的格式。

原因是我想使用public boolean after(Date when)方法

3 个答案:

答案 0 :(得分:3)

这将起作用^ _ ^

DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy");
String startDateStr ="2017-02-03";
Date date = null;
try {
    date = inputFormat.parse(startDateStr);
    String startDateStrNewFormat = outputFormat.format(date);
} catch (ParseException e) {
    e.printStackTrace();
}

对你的输出的解释很少:

D是一年中的一天(1-365)
d是每月(1-31)

检查document

enter image description here

答案 1 :(得分:2)

是的,你错过了什么。您在yyyy-MM- DD 格式字符串中使用DD代替dd。这是你如何做到的:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
String formattedDate = sdf.format(new Date());

答案 2 :(得分:1)

使用SimpleDateFormat类型作为fomatter。您正在创建DateFormat对象,但使用的是SimpleDateFormat。

String startDateStr = "2017-02-03"
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd",Locale.US);
Date date = (Date)formatter.parse(startDateStr);