使用java获取一周的开始和结束日期

scr*_*rit 0 java

我的要求是在日期过去时获取一周的开始和结束日期。我已经搜索过并找到了大量答案,但对最好使用哪个答案感到困惑。在其中一个线程中,我找到了以下代码:

  Calendar c = Calendar.getInstance();
    c.setTime(new Date("8/16/2017"));
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
    System.out.println("day :" + dayOfWeek);
    c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
    System.out.println("start of week day :" + c.getTime());
Run Code Online (Sandbox Code Playgroud)

输出:

day :4
start of week day :Sun Aug 13 00:00:00 EDT 2017
Run Code Online (Sandbox Code Playgroud)

我在上面的代码输出中看到了一个错误。一周的开始应该是 8 月 14 日星期一,但它显示的是 8 月 13 日星期日。当日期作为字符串动态传递时,获取一周的开始日期和结束日期的任何建议。

--已编辑--我正在寻找java 代码,该代码返回传递日期的一周的第一天和最后一天的日期

Aka*_*ash 7

import java.time.LocalDate;

import static java.time.DayOfWeek.MONDAY;
import static java.time.DayOfWeek.SUNDAY;
import static java.time.temporal.TemporalAdjusters.nextOrSame;
import static java.time.temporal.TemporalAdjusters.previousOrSame;

public class FirstAndLast
{
  public static void main(String[] args)
  {
    LocalDate today = LocalDate.now();

    LocalDate monday = today.with(previousOrSame(MONDAY));
    LocalDate sunday = today.with(nextOrSame(SUNDAY));

    System.out.println("Today: " + today);
    System.out.println("Monday of the Week: " + monday);
    System.out.println("Sunday of the Week: " + sunday);
  }
}
Run Code Online (Sandbox Code Playgroud)