7

我们使用一个 java 应用程序,它有一个日期选择字段,当您单击该字段时,会打开一个小日历。一周的第一天是星期天。但我希望它是星期一。我尝试从日期设置中的 Windows 控制面板更改它。例如,我将 Windows 日历的第一天设置为星期四。但是在 Java 应用程序的日历中,一周的第一天仍然是星期日。是否可以从 Windows 更改 Java 应用程序的一周的第一天,还是仅从 Java 应用程序的代码更改?

问候

4

4 回答 4

25

您可以使用 setFirstDayOfWeek() 方法来设置一周的第一天。该方法只能影响 WEEK_OF_MONTH 或 WEEK_OF_YEAR 的返回值。对于 DAY_OF_WEEK,它什么也不做。

你可以实现类似的东西:

Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
int rec = cal.get(Calendar.WEEK_OF_MONTH);
System.out.println(rec);

在此处阅读有关 API 的更多信息

于 2012-08-08T06:18:11.417 回答
3

如果你想设置星期一然后使用

Calendar currentCalendar = Calendar.getInstance(new Locale("en","UK"));

如果要设置星期日,请使用

Calendar currentCalendar = Calendar.getInstance(new Locale("en","US"));
于 2018-01-17T06:53:39.363 回答
2

您的 Java 应用程序使用哪个框架?日期选择字段是什么组件?

在 JavaCalendar中,默认情况下一周的第一天由系统的区域设置决定。

因此,如果您无法更改应用程序的源代码:

  • 您可能想要更改操作系统的区域设置(在您的情况下为 Windows)
  • 或者您可以在启动 jvm 时使用各种命令行参数,例如-Duser.country或java。-Duser.region for看看这里
于 2012-08-08T06:19:33.677 回答
1
Calendar now = Calendar.getInstance();
    System.out.println("Current date : " + (now.get(Calendar.MONTH) + 1) + "-"
        + now.get(Calendar.DATE) + "-" + now.get(Calendar.YEAR));

    String[] strDays = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thusday",
        "Friday", "Saturday" };
    // Day_OF_WEEK starts from 1 while array index starts from 0
    System.out.println("Current day is : " + strDays[now.get(Calendar.DAY_OF_WEEK) - 1]);
于 2012-08-08T06:42:25.147 回答