This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
One important thing to understand is that Date objects by themselves do not have any format. So, if you parse a string into a Date object, using for example a SimpleDateFormat object with a certain format, then the resulting Date object will not somehow remember the format that the original string had.
If you print the content of a Date object, by simply printing it out like this:
then the date will be printed using some default format that looks like "Mon Mar 28 00:00:00 GMT+05:30 2011" (what you're seeing).
To print a date with a certain format, you'd have to convert it back to a string again. You can do that by calling the format() method of your SimpleDateFormat object. However, it doesn't make much sense to first parse the string into a Date object, and then doing exactly the reverse immediately. You could just as well just print the string directly and save the work of parsing and formatting it.
Just to add to what Jesper has stated,
A java.util.Date is really just a long value (milliseconds since 01Jan1970 GMT, if memory serves correct), and does not carry any concept of calendar date in the way we usually think of a date. The string representations that you are seeing are produced by the default Locale and its associated Calendar and DateFormat instances. If you want some specific formatting, create a SimpleDateFormat and use its format() method or get the Locale's date formats and use those.