简体   繁体   中英

Parse yyyy-MM-DD String to Date yyyy-MM-DD in Android?

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

2017-02-03 date is parsed to Tue Jan 03 00:00:00 GMT+05:45 2017

Did I miss something?

Update

I needed a string to be converted to a date object while maintaining the same format.

The reason for this is I want to make use of public boolean after(Date when) method

This will work ^_^

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();
}

Little explanation of your output :

D is Day in year (1-365)
d is day in month (1-31)

Check the document

在此处输入图片说明

Yes you missed something. You used DD instead of dd in your yyyy-MM- DD format string. Here is how you do it:

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

Use SimpleDateFormat type for fomatter. You are creating DateFormat object but using SimpleDateFormat.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM