Java.Util.Date Format Conversion Yyyy-Mm-Dd to Mm-Dd-Yyyy

java.util.Date format conversion yyyy-mm-dd to mm-dd-yyyy

Date is a container for the number of milliseconds since the Unix epoch ( 00:00:00 UTC on 1 January 1970).

It has no concept of format.

Java 8+

LocalDateTime ldt = LocalDateTime.now();
System.out.println(DateTimeFormatter.ofPattern("MM-dd-yyyy", Locale.ENGLISH).format(ldt));
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH).format(ldt));
System.out.println(ldt);

Outputs...

05-11-2018
2018-05-11
2018-05-11T17:24:42.980

Java 7-

You should be making use of the ThreeTen Backport

Original Answer

For example...

Date myDate = new Date();
System.out.println(myDate);
System.out.println(new SimpleDateFormat("MM-dd-yyyy").format(myDate));
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(myDate));
System.out.println(myDate);

Outputs...

Wed Aug 28 16:20:39 EST 2013
08-28-2013
2013-08-28
Wed Aug 28 16:20:39 EST 2013

None of the formatting has changed the underlying Date value. This is the purpose of the DateFormatters

Updated with additional example

Just in case the first example didn't make sense...

This example uses two formatters to format the same date. I then use these same formatters to parse the String values back to Dates. The resulting parse does not alter the way Date reports it's value.

Date#toString is just a dump of it's contents. You can't change this, but you can format the Date object any way you like

try {
Date myDate = new Date();
System.out.println(myDate);

SimpleDateFormat mdyFormat = new SimpleDateFormat("MM-dd-yyyy");
SimpleDateFormat dmyFormat = new SimpleDateFormat("yyyy-MM-dd");

// Format the date to Strings
String mdy = mdyFormat.format(myDate);
String dmy = dmyFormat.format(myDate);

// Results...
System.out.println(mdy);
System.out.println(dmy);
// Parse the Strings back to dates
// Note, the formats don't "stick" with the Date value
System.out.println(mdyFormat.parse(mdy));
System.out.println(dmyFormat.parse(dmy));
} catch (ParseException exp) {
exp.printStackTrace();
}

Which outputs...

Wed Aug 28 16:24:54 EST 2013
08-28-2013
2013-08-28
Wed Aug 28 00:00:00 EST 2013
Wed Aug 28 00:00:00 EST 2013

Also, be careful of the format patterns. Take a closer look at SimpleDateFormat to make sure you're not using the wrong patterns ;)

how to convert date in yyyy-MM-dd format of date type?

Convert it to java.sql.Date :

   Date obj = new Date();           
java.sql.Date sqlDate = new java.sql.Date(obj.getTime());
System.out.println(sqlDate);

How to convert date in to yyyy-MM-dd Format?

Use this.

java.util.Date date = new Date("Sat Dec 01 00:00:00 GMT 2012");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String format = formatter.format(date);
System.out.println(format);

you will get the output as

2012-12-01

Java - Converting yyyy-MM-dd'T'HH:mm:ssZ to readable dd-MM-yyyy

Yes. It can be done in two parts as follows:

  1. Parse your String to Date object

    SimpleDateFormat sd1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
    Date dt = sd1.parse(myString);
  2. Format the Date object to desirable format

    SimpleDateFormat sd2 = new SimpleDateFormat("yyyy-MM-dd");
    String newDate = sd2.format(dt);
    System.out.println(newDate);

You will have to use two different SimpleDateFormat since the two date formats are different.

Input:

2015-01-12T10:02:00+0530

Output:

2015-01-12

java.sql.Date (YYYY-MM-DD) to java.util.Date (DD-MMM-YYYY) conversion

This is because you re-parse the date once it has been formatted.

date = format1.parse(input);
String temp = format2.format(date);
Date outDate = format2.parse(temp);
System.out.println(outDate);

Simply do

date = format1.parse(input);
String temp = format2.format(date);
System.out.println(temp)

Note that if you have JSTL you can format direcytly in the page:

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:formatDate value="${bean.date}" pattern="dd-MMM-yy" />


Related Topics



Leave a reply



Submit