Question: I have a plist file which contains array of dictionaries ![enter image description here](https://i.stack.imgur.com/FDoUi.png)

How can I traverse through this and remove all keys and value with key fQty? I need to remove fQty so that I can compare the dictionary to a new dictionary disregarding the fQty field.

Answer: 
`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](http://www.threeten.org/threetenbp/)

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 `DateFormatter`s

**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 `Date`s. 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`](http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) to make sure you're not using the wrong patterns ;)
see these..

formatting date

[DateTimeFormatter](https://mkyong.com/java/java-how-to-get-current-date-time-date-and-calender/)

parsing date

[Instant with zone](https://mkyong.com/java/how-to-convert-string-to-date-java/)