java中的时区转换

时间:2011-06-03 19:41:42

标签: java datetime timezone jodatime

我正在实施以下方法 -

DateTime getDateTime(Date srcDate, String destTimeZone) {
}

由于输入是Date对象,我可以安全地假设它的时区为“UTC”。我必须将其转换为destTimeZone并返回DateTime对象。

任何指针都能以有效的方式解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

这种方法并不是很难用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

答案 1 :(得分:0)

DateTime getDateTime(Date srcDate, String destTimeZone) {

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

}