我试图改变默认firstDayOfWeek为java。工具.日历星期日至星期一。它是可以实现这一过JVM配置,而不是添加这段代码?

cal.setFirstDayOfWeek(Calendar.MONDAY);
有帮助吗?

解决方案

第一天的星期是从当前的区域设置。如果你不设置区域的日历(日历。getInstance(区域), 或 新GregorianCalendar(区域)),它将使用该系统的默认。该系统的默认可以复盖一个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 (星期一)

不要忘记,这可能会改变其他实证研究综述(u)r过。

其他提示

根据API:

  

日历使用两个参数定义特定于语言环境的七天工作周:一周的第一天和第一周的最小天数(从1到7)。构建Calendar时,这些数字取自语言环境资源数据。它们也可以通过设置其值的方法明确指定。

因此,如果您确保正确配置了语言环境,则会隐式设置。就个人而言,我更愿意明确地设置这个......

有关从命令行设置区域设置的方法,请参阅#64038

您是否尝试使用其他语言环境调用JVM?但你应该小心副作用......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top