This is the difference between model and view.
The model here is the Date object (Date date = new Date();
) It contains information about what month, day, and year, hour of day, etc. that the date was created with. It doesn't know anything about formatting.
The view is the string generated by the DateFormat object. You can pass the model (the date object) in to the formatter in order to generate multiple views of the model depending on what fields you're interested in, and how you want them presented.
So the date continues to hold the same date fields regardless of what strings the formatter generates for it. The date and the formatted strings are separate objects. Although we say "format a date", the formatting doesn't actually change the date object in any way.
Your format string is incorrect, to get the month you want "MM-dd-yyyy", "mm" means minutes. See the API documentation for SimpleDateFormat to see what the different pattern letters mean.