【发布时间】:2015-09-28 11:47:08
【问题描述】:
我有两个整数:year 和 week。我想从这两个值构造一个LocalDateTime,其中日期表示特定年份中特定周的第一天。
我已经试过了:
LocalDateTime ldt = LocalDateTime.of(year, 1, 1, 0, 0).plusWeeks(week-1);
这不会给出正确的结果,因为一年的第一天并不总是该年第一周的开始。我似乎也不知道如何获得第一周的第一天。
有没有什么简单的方法可以用 Java 8 中的日期和时间 API 做到这一点?
注意:我知道我也可以通过给出here 的答案创建一个解决方法,但这似乎有些牵强。也许不是,如果是,请告诉我!
【问题讨论】:
-
一年内的周数是特定于语言环境的,因此这两个数据点不会为您提供确切的日期。 AFAIK
LocalDateTime不处理这个事实,但GregorianCalendar处理。 -
@biziclop 我认为这正是他想要的。特定于区域设置的第“1”周 - 所以对于某些人来说是前 4 天的一周,对于其他人来说则是其他的。
-
@dognose 那么
GregorianCalendar确实是要走的路。 -
一周和一年中的一周的定义各不相同。在讨论该主题时始终定义这些术语。也许你的意思是standard ISO 8601 week。
标签: java datetime java-8 java-time