在给出周数,工作日和年份的Java中获取日期

Ama*_*mar 2 java jodatime

鉴于一年中的每周,每周和每年,我们如何在Java中获取日期?

有了Jodatime,我尝试了以下方法:

DateTime dt = new DateTime();
dt.withYear(year);
dt.withWeekOfWeekyear(weekOfYear);
dt.withDayOfWeek(weekDay);
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyMMdd");
System.out.println(dateTimeFormatter.print(dt));
Run Code Online (Sandbox Code Playgroud)

但它得到了当前的日期!

Nee*_*eet 6

JodaTime返回一个已更改的副本,所以:

DateTime dt = new DateTime()
    .withWeekyear(year)
    .withWeekOfWeekyear(weekOfYear)
    .withDayOfWeek(weekDay);
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyMMdd");
System.out.println(dateTimeFormatter.print(dt));
Run Code Online (Sandbox Code Playgroud)

这应该按预期工作.


Liu*_*ian 5

接受的答案有错误。.withYear(year)应该是withWeekyear(year)。@Neet 请更新它。