简体   繁体   中英

Java change date format from custom date to MM dd yyyy

I am trying to convert a String value that is stored in a database,for example "2012-01-20", to be in the format January 20, 2012.

I have seen some examples, but they are using Date which works with SimpleDateFormat .

As an example here is one way I tried but the "try" always fails and the result is null

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date convertedDate=null;

try {

    convertedDate = df.parse(datePlayed);                   

} catch(ParseException e){
    e.printStackTrace();
}   

In short, you're not using the right format for parsing. You need to use two DateFormat instances; one for parsing and one for formatting.

DateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");
Date convertedDate = parser.parse(datePlayed);
String output = formatter.format(convertedDate);
Date da = new Date();
SimpleDateFormat ft = new SimpleDateFormat("E, dd/MM/yyyy !");
System.out.println("Update : " + ft.format(da));

You can change your date style do you want at: E, dd/MM/yyyy !

Good luck !

If the Date is read from a Database, then store it as a java.sql.Date. You can then use SimpleDateFormat on it, maybe after converting to java.util.Date. From the ResultSet object, you can extract Dates.

If what you meant is that you are given a date in text that was extracted from a DB by someone else and you are stuck with it. Try using:

 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
 df.setLenient(true);  
 convertedDate = df.parse(datePlayed.trim() );

Also try displaying the text you are parsing before you parse to make sure the datePlayed value is what you expect. With parseInt , an extra space before or after the data will cause an error, so calling trim() removes extra spaces.

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