Так все, что вам нужно сделать, это простая математика трюк с датой выглядит код (предположим, что первый день недели понедельник в вашем Locale)
Date myCurrentDate = new Date();
long timeInFirstWeek = (myCurrentDate.getTime() - 345600000 + 3600000) % 604800000;
Date firstDateOfWeek = new Date(myCurrentDate.getTime() - timeInFirstWeek - 3600000);
Date lastDateOfWeek = new Date(firstDateOfWeek.getTime() + 604800000 - 1);
GWT.log(DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(lastDateOfWeek));
GWT.log(DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(firstDateOfWeek));
Объяснение: Чтобы узнать, какой день недели у нас есть, нам нужна константа. В Date Time только одна константа равна 0 (setTime (0)) Но это 1 января 1970 четверг 01:00. Итак, давайте вернемся к времени до 70 '. Для этого мы делим «наше время сейчас» на время «одной недели», что составляет 604800000 миллисекунд. Поскольку мы используем по модулю, мы ожидаем, что в первую неделю 1970-х годов. Но в четверг и в 01:00 есть еще проблема. Как это решить? Мы вычитаем из нашего текущего времени четыре дня = 345600000 миллисекунд и добавим этот час 3600000. Теперь мы приземляемся в понедельник 00:00 1970! Теперь у нас есть переменная timeInFirstWeek, которая указывает время, которое прошло только в одну первую неделю 1970 года. Я также говорю, что мы удаляем все остальные недели со времени, и у нас есть только одна неделя.
Итак, теперь вы, вероятно, догадываетесь, что все, что нам нужно сделать, это вычесть timeInFirstWeek с текущей даты, чтобы получить первую секунду недели. Чтобы получить последнюю вторую неделю, нам нужно добавить одну неделю = 604800000, а затем вычесть одну миллисекунду.
С форматированием, указанным как @Knarf, вы можете использовать DateTimeFormat. Кроме того, она была удалена временная от устаревания в GWT 2.8, как код говорит
// Temporarily remove deprecation to keep from breaking teams that don't allow
// deprecated references.
// @Deprecated