【问题标题】:How to specify firstDayOfWeek for java.util.Calendar using a JVM argument如何使用 JVM 参数为 java.util.Calendar 指定 firstDayOfWeek
【发布时间】:2008-11-06 17:12:21
【问题描述】:

我正在尝试将 java.util.Calendar 的默认 firstDayOfWeek 从 SUNDAY 更改为 MONDAY。是否可以通过JVM配置而不是添加这段代码来实现?

cal.setFirstDayOfWeek(Calendar.MONDAY);

【问题讨论】:

    标签: java calendar jvm-arguments


    【解决方案1】:

    一周的第一天来自当前语言环境。如果您不设置日历的区域设置(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 (星期一)

    不要忘记这也可能改变其他行为。

    【讨论】:

      【解决方案2】:

      根据 API:

      日历使用两个参数定义特定于语言环境的一周 7 天:一周的第一天和第一周的最少天数(从 1 到 7)。这些数字是在构造日历时从语言环境资源数据中获取的。它们也可以通过设置它们的值的方法明确指定。

      因此,如果您确保您的语言环境配置正确,这将被隐式设置。就个人而言,我更喜欢明确设置这个......

      请参阅#64038,了解从命令行设置语言环境的方法。

      【讨论】:

        【解决方案3】:

        您是否尝试过使用不同的语言环境调用 JVM?但是你应该小心副作用......

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-16
          • 2020-05-18
          • 2011-08-18
          • 2017-10-27
          • 1970-01-01
          • 1970-01-01
          • 2021-01-13
          相关资源
          最近更新 更多