How to get first day of a given week number in Java

前端 未结 7 695
独厮守ぢ
独厮守ぢ 2020-12-01 12:38

Let me explain myself. By knowing the week number and the year of a date:

Date curr = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curr);
i         


        
7条回答
  •  北荒
    北荒 (楼主)
    2020-12-01 13:15

    Those fields does not return the values. Those are constants which identifies the fields in the Calendar object which you can get/set/add. To achieve what you want, you first need to get a Calendar, clear it and set the known values. It will automatically set the date to first day of that week.

    // 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();
    

    Please learn to read the javadocs to learn how to use classes/methods/fields and do not try to poke random in your IDE ;)

    That said, the java.util.Date and java.util.Calendar are epic failures. If you can, consider switching to Joda Time.

提交回复
热议问题