I have a problem parsing a String which represents a time (time only). I'm using a DateFormat class with the default Locale and TimeZone,
When I use DateFormat.getTimeInstance(DateFormat.MEDIUM), the String will be parsed correctly. But when I use DateFormat.getTimeInstance(DateFormat.FULL) the resulting Date object will represent a time that is one-hour-before the time represented by the String.
Will print: Thu Jan 01 15:00:00 EET 1970 Thu Jan 01 14:00:00 EET 1970
I ran your codes and have the same issue as you. Was kind of puzzled, but as I read the API:
SHORT is completely numeric, such as 12.13.52 or 3:30pm MEDIUM is longer, such as Jan 12, 1952 LONG is longer, such as January 12, 1952 or 3:30:32pm FULL is pretty completely specified, such as Tuesday, April 12, 1952 AD or 3:30:42pm PST.
I think, the difference is caused by the style you used. If you use both LONG and FULL, you'd get the same output.