从另一个时区转换为本地时区,保留Java中的本地时间

时间:2014-01-17 18:56:57

标签: java datetime jodatime

说我得到了纽约的时间戳mTimestamp。再说我当地的时区是加州。如果纽约的时区翻译为纽约时间下午9:03:45,我如何获得加利福尼亚州下午9:03:45的等效时间戳?我希望这个问题有道理,这是我能说清楚的最好的。

因此该函数会将纽约时间戳为9pm的时间戳转换为加利福尼亚州的9pm时间戳。

2 个答案:

答案 0 :(得分:1)

由于您已使用“datetime”和“jodatime”标记了您的问题,我假设您谈论的是课程org.joda.time.DateTime

这个班级确实有一个内部时区状态!如果您只是查看方法withZone()withZoneRetainFields(),那么您可以将此状态更改为其他时区。在您的情况下,您需要相同的本地时间,但更改时区,从而更改全球时间线上的物理瞬间。

DateTime newYork = 
  new DateTime(2014, 1, 17, 21, 3, 45, DateTimeZone.forID("America/New_York");
DateTime california = 
  newYork.withZoneRetainFields(DateTimeZone.forID("America/Los_Angeles"));

答案 1 :(得分:0)

我认为时间戳是相同的,因为时间仍然相同,但如果你想在两个不同的语言环境中转换时间,然后将时间从一个语言环境转换为另一个语言环境的时间,同时实际上会产生更多感