Joda-time:今年ISO第1周的第一天

ott*_*ath 12 java jodatime

我想知道今年的ISO第1周的周一日期(2009年将是2008年12月29日星期一).

我确信joda-time可以处理这个问题,但我无法弄清楚API(可能已经太晚了).

有人可以帮忙吗?谢谢!

sha*_*ILU 22

DateMidnight其他答案中提到的API现已弃用,请使用以下内容:

DateTime date = new DateTime().dayOfYear().withMinimumValue().withTimeAtStartOfDay();
Run Code Online (Sandbox Code Playgroud)


Bla*_*son 11

我相信这应该有效:

DateMidnight date = new DateMidnight().withWeekOfWeekyear(1).withDayOfWeek(1);
Run Code Online (Sandbox Code Playgroud)

  • **注意:**此答案使用Joda-Time团队不再推荐*的类和方法*.请参阅[shaILU的正确答案](http://stackoverflow.com/a/22334471/642706).引用[发行说明](http://www.joda.org/joda-time/upgradeto230.html):`DateMidnight ...这个类在概念上有缺陷......用LocalDate替换... ... [或] DateTime ... [使用] ... withTimeAtStartOfDay()方法`.([LocalDate](http://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html)或[DateTime.withTimeAtStartOfDay()](http://www.joda.org/ joda-time/apidocs/org/joda/time/DateTime.html #withTimeAtStartOfDay())) (3认同)