Григорианский календарь не неправильно "начало недели"JAVA

Программисты JAVA общаются здесь
Anonymous
Григорианский календарь не неправильно "начало недели"

Сообщение Anonymous »

Это август 2025: < /p>
August 2025
Mon Tue Wed Thu Fri Sat Sun
1 2 3
4 5 6 7 8 9 10
--> 11 12 13 14 15 (16) 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
< /code>
Учитывая дату (например, 2025-08-16), я хочу получить начало недели. Первый день недели-понедельник, поэтому начало недели-2025-08-11. < /P>
Я использовал этот код: < /p>
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;

public class Sample {

public static void main(String[] args) {
Calendar dt = Calendar.getInstance(TimeZone.getTimeZone("Europe/Rome"));
dt.setFirstDayOfWeek(Calendar.MONDAY);

// set to 2025-08-16
dt.set(Calendar.YEAR, 2025);
dt.set(Calendar.MONTH, Calendar.AUGUST);
dt.set(Calendar.DATE, 16);

//dt.getTimeInMillis(); //
Запуск его, он возвращает 2025-08-04, что совершенно неправильно. Но не понаправдевая линию, отмеченную «неуместным это», которая является операцией Get , фактический результат становится ожидаемым (2025-08-11).
Это ошибка JDK? Как я могу это объяснить?

Подробнее здесь: https://stackoverflow.com/questions/797 ... f-the-week

Вернуться в «JAVA»