如何在 Java 应用程序日历中设置一周的第一天

问题描述 投票:0回答:5

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

问候

java windows calendar weekday
5个回答
26
投票

您可以使用方法 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 这里


5
投票

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

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

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

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

3
投票

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

在 Java 中

Calendar
默认情况下,一周的第一天由系统的 Locale 设置决定。

所以如果您不能更改应用程序的源代码:

  • 您可能想更改操作系统的区域设置(在您的情况下为 Windows)
  • 或者您可以在启动 jvm 时使用各种命令行参数,例如
    -Duser.country
    -Duser.region for
    java。 看看here.

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]);

0
投票

简而言之:

WeekFields.of(DayOfWeek.MONDAY, 1)

这是一些例子:

int weekOfYear1 = LocalDateTime.parse("2023-01-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
        .get(WeekFields.SUNDAY_START.weekOfWeekBasedYear());
int weekOfYear2 = LocalDateTime.parse("2023-01-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
        .get(WeekFields.ISO.weekOfWeekBasedYear());
int weekOfYear3 = LocalDateTime.parse("2023-01-02 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
        .get(WeekFields.of(DayOfWeek.MONDAY, 1).weekOfWeekBasedYear());
weekOfYear1 is 1
weekOfYear1 is 1
weekOfYear1 is 2
© www.soinside.com 2019 - 2024. All rights reserved.