如何在Java中获取给定周数的第一天

fra*_*ara 21 java calendar dayofweek

让我解释一下自己.通过了解周数和日期年份:

Date curr = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curr);
int nweek = cal.WEEK_OF_YEAR;
int year = cal.YEAR;
Run Code Online (Sandbox Code Playgroud)

但现在我不知道如何获得该周第一天的日期.我一直在寻找日历,日期,日期格式,但没有什么可能有用......

有什么建议吗?(在Java工作)

Bal*_*usC 39

这些字段不返回值.这些是常量,用于标识Calendar对象中可以获取/设置/添加的字段.为了达到你想要的效果,你首先需要得到一个Calendar,清除它并设置已知值.它会自动将日期设置为该周的第一天.

// We know week number and year.
int week = 3;
int year = 2010;

// Get calendar, clear it and set week number and year.
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);

// Now get the first day of week.
Date date = calendar.getTime();
Run Code Online (Sandbox Code Playgroud)

请学会阅读的javadoc学习如何使用类/方法/字段,不要试图在你的IDE捅随机;)

这就是说,java.util.Date并且java.util.Calendar史诗般的失败.如果可以,请考虑切换到Joda Time.

  • 请注意,周数取决于区域设置.绝对肯定你的语言环境是正确的! (4认同)