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

Я реализую следующий метод -

DateTime getDateTime(Date srcDate, String destTimeZone) {
}

Поскольку вход имеет Date объект, я могу смело предположить его часовой пояс как "UTC". Я должен преобразовать его в destTimeZone и вернуть DateTime объект.

Есть ли эффективные способы решения этой проблемы?

Ответы [ 2 ]

1 голос
/ 04 июня 2011

Такой метод не очень сложно реализовать с помощью Joda Time:

public DateTime getDateTime( Date srcDate, String destTimeZone )
{
    return new DateTime( srcDate, DateTimeZone.forID( destTimeZone) );
}

Стандартный способ Java будет:

Calendar cal = Calendar.getInstance( TimeZone.getTimeZone( destTimeZone ) );
cal.setTimeInMillis( srcDate.getTime() );
// now you have a Calendar object with time zone set
0 голосов
/ 03 июня 2011
DateTime getDateTime(Date srcDate, String destTimeZone) {

    return new DateTime(new Date(srcDate.getTime() + 
                   TimeZone.getTimeZone(destTimeZone).getRawOffset()));

}
...