【发布时间】:2020-07-14 07:30:34
【问题描述】:
我正在测试我们的一个日期管理框架,它应该重置一些 Calendar 字段(使用 actual minimum)。
但是,当changing first day of week、Calendar 总是返回 SUNDAY (1) 作为 actual minimum 为 day of weeks。是bug吗?
MVCE:
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.printf("Java specification: %s%n", System.getProperty("java.vm.specification.version"));
System.out.printf("Java version: %s%n", System.getProperty("java.specification.version"));
System.out.printf("VM version: %s%n", System.getProperty("java.vm.version"));
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
int[] days = { 1, 5, 7 };
for (int day : days) {
cal.setTimeInMillis(0L);
cal.setFirstDayOfWeek(day);
System.out.printf("expected: %d, actual: %d%n", day, cal.getActualMinimum(Calendar.DAY_OF_WEEK));
}
}
}
【问题讨论】:
-
这不是错误。星期几取决于您的环境的区域设置。 en_US 将一周的第一天设置为星期日。重复:stackoverflow.com/questions/269486/…
-
我改变了一周的第一天...
-
我认为一周的第一天与实际最小值不同。你有 getFirstDayOfWeek() 方法。