我正在尝试将java.util.Calendar的默认firstDayOfWeek从SUNDAY更改为MONDAY。是否可以通过JVM配置实现此目的,而不是添加这段代码?
cal.setFirstDayOfWeek(Calendar.MONDAY);
答案 0 :(得分:16)
一周的第一天来自当前的区域设置。如果您未设置日历的语言环境(Calendar.getInstance(Locale)或new GregorianCalendar(Locale)),则会使用系统的默认设置。系统的默认值可以被JVM参数覆盖:
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
System.out.println(Locale.getDefault() + ": " + c.getFirstDayOfWeek());
}
这应显示具有不同语言/国家/地区的JVM参数的不同输出:
-Duser.language=en -Duser.country=US
- > en_US: 1
(星期日) -Duser.language=en -Duser.country=GB
- > en_GB: 2
(星期一) 不要忘记这可能会改变其他行为(你)。
答案 1 :(得分:3)
根据API:
日历使用两个参数定义特定于语言环境的七天工作周:一周的第一天和第一周的最小天数(从1到7)。构建Calendar时,这些数字取自语言环境资源数据。它们也可以通过设置其值的方法明确指定。
因此,如果您确保正确配置了区域设置,则会隐式设置。就个人而言,我更愿意明确地设置这个......
有关从命令行设置区域设置的方法,请参阅#64038。
答案 2 :(得分:0)
您是否尝试使用其他语言环境调用JVM?但你应该小心副作用......