I would like to know how to convert a time from one specific timezone to another specific timezone.
Sorry - that is NOT possible. You cannot convert 'time'; you must convert 'dates' that include a time and, optionally, a
The code does not convert the time correctly.
Not surprising - given what I explained above.
Date date = sdfAlien.parse("16:00:00");
Ok - care to guess at what year, month and day that Date that will create?
Print out the value on the console if you want.
Then when you are ready read the API for the SimpleDateFormat itself. See the 'parse' method description if you need to
- For formatting, if the number of pattern letters is 2, the year is truncated to 2 digits; otherwise it is interpreted as a number.
- For parsing, if the number of pattern letters is more than 2, the year is interpreted literally, regardless of the number of digits. So using the pattern "MM/dd/yyyy", "01/11/12" parses to Jan 11, 12 A.D.
- For parsing with the abbreviated year pattern ("y" or "yy"),
SimpleDateFormatmust interpret the abbreviated year relative to some century. It does this by adjusting dates to be within 80 years before and 20 years after the time the
SimpleDateFormatinstance is created. For example, using a pattern of "MM/dd/yy" and a
SimpleDateFormatinstance created on Jan 1, 1997, the string "01/11/12" would be interpreted as Jan 11, 2012 while the string "05/04/64" would be interpreted as May 4, 1964. During parsing, only strings consisting of exactly two digits, as defined by
Character.isDigit(char), will be parsed into the default century. Any other numeric string, such as a one digit string, a three or more digit string, or a two digit string that isn't all digits (for example, "-1"), is interpreted literally. So "01/02/3" or "01/02/003" are parsed, using the same pattern, as Jan 2, 3 AD. Likewise, "01/02/-3" is parsed as Jan 2, 4 BC.
Do you see why you got the result you got yet?
But if I replace Date date = sdfAlien.parse("16:00:00"); to Date date = new Date(); then conversion works
Ok - so now what year, month and day do you think THAT statement will create?
Print it out on the console and see.
Hint: Daylight Savings Time did NOT exist centuries ago. You need to provide a date value (year, month, day) appropriate for your use case.