【问题标题】:How to set first day of week in a Java application calendar如何在 Java 应用程序日历中设置一周的第一天
【发布时间】:2012-08-05 05:04:49
【问题描述】:

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

问候

【问题讨论】:

标签: java windows calendar weekday


【解决方案1】:

您可以使用 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 HERE

【讨论】:

  • @Next Door Engineer 默认开始日期是哪一天?周一还是周日?
  • Calendar.DAY_OF_WEEK 是一个常数值,即使您更改一周的第一天也不会更改。例如,1 始终表示“星期日”,6 始终表示“星期五”。
  • @Jeff 那么发生了什么变化?在设置新的一周的第一天后,如何获得正确更改的星期几?
  • @RileyFitzpatrick WEEK_OF_MONTH 和 WEEK_OF_YEAR 将随 setFirstDayOfWeek() 改变。如果您想要 Monday=1 而不是 Sunday=1,则需要自行以编程方式计算。
【解决方案2】:

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

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

如果你想设置星期天,那么使用

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

【讨论】:

【解决方案3】:

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

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

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

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

【讨论】:

  • 我可以在不使用任何命令行参数的情况下从“Windows 控制面板 > Java”中执行此操作吗?
  • 我从未尝试过,我在 linux 上。但是在“Java”选项卡上显示运行时环境设置并尝试将“-Duser...”添加到运行时参数列
【解决方案4】:
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]);

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    相关资源
    最近更新 更多