java中的时区转换



我正在实现以下方法-

DateTime getDateTime(Date srcDate, String destTimeZone) {
}

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

有什么可以有效解决这个问题的指针吗?

这样的方法在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
DateTime getDateTime(Date srcDate, String destTimeZone) {
    return new DateTime(new Date(srcDate.getTime() + 
                   TimeZone.getTimeZone(destTimeZone).getRawOffset()));
}

相关内容

  • 没有找到相关文章

最新更新