Преобразование часового пояса - PullRequest
38 голосов
/ 04 июля 2011

Мне нужно конвертировать из одного часового пояса в другой часовой пояс в моем проекте.

Я могу конвертировать из моего текущего часового пояса в другой, но не из другого часового пояса в другой.

Например, я нахожусь в Индии, и я могу конвертировать из Индии в США, используя Date d=new Date();, назначая его объекту календаря и устанавливая часовой пояс.

Однако я не могу сделать это из другого часового пояса в другой часовой пояс. Например, я нахожусь в Индии, но у меня возникают проблемы с преобразованием часовых поясов из США в Великобританию.

Ответы [ 11 ]

0 голосов
/ 29 мая 2015
public static void convertTimeZone(Date date, TimeZone fromTimeZone, TimeZone toTimeZone) {
    long milliseconds = date.getTime();
    milliseconds += (fromTimeZone.getRawOffset() * -1);
    if (fromTimeZone.inDaylightTime(date)) {
        milliseconds += (fromTimeZone.getDSTSavings() * -1);
    }
    milliseconds += toTimeZone.getRawOffset();
    if (toTimeZone.inDaylightTime(date)) {
        milliseconds += toTimeZone.getDSTSavings();
    }
    date.setTime(milliseconds);
}
...