如何在Joda Time代表“9 AM EST”?

时间:2012-05-15 22:47:04

标签: java jodatime

Joda Time似乎处理了关于某个特定时刻的某些信息的概念,但不是全部。例如,LocalTime类可以表示时间“9:43:17 AM”,LocalDate类可以知道“2010年7月7日”,无论时区如何。

但我有一堆Instants,我想知道在“太平洋标准时间上午9点”之后发生了哪些。也就是说,在PST中,哪个输入时刻发生在上午9点之后?

这可以在Joda Time中轻松表达吗?如果有办法解析像“美国东部时间早上9点43分”

这样的字符串,可以获得奖励积分

2 个答案:

答案 0 :(得分:1)

“部分”时间类(实际上它们实现的PartialTime接口)都不能代表时区。这就是文档所说的。所以你必须分别代表时区。

因此,

  • 你需要手工完成“东部时间早上9点之后”的计算,
  • 你不能直接解析像“美国东部时间早上9点43分”这样的字符串。

答案 1 :(得分:0)

我遇到了类似的问题,我没有找到令人满意的代码答案。所以这就是我所做的:(对不起,我把它保存在Scala中)

def nineAMOfDate(date: DateTime) = {
  new DateTime(date.getYear, date.getMonthOfYear, date.getDayOfMonth, 9, 0, DateTimeZone.forID("America/New_York"))
}

据我所知,这将使用东部盛行时间。