You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX中如何设置DatePicker日历将周一设为每周起始日

JavaFX DatePicker设置周一为每周起始日的方法

JavaFX内置的DatePicker组件默认的周起始日跟随系统/当前Locale的规则,要修改为周一为起始日可以通过以下两种方式实现:

默认以周日为起始日的DatePicker效果如下:
默认周日为起始的DatePicker日历


方法1:修改Locale(最简单实现)

大部分国家和地区(包括中国、欧盟成员国等)的Locale默认规则就以周一作为每周起始日,仅需要给对应DatePicker设置对应Locale即可:

// 仅修改单个DatePicker的Locale
datePicker.setLocale(Locale.CHINA);

// 全局修改所有JavaFX控件的默认Locale
Locale.setDefault(Locale.CHINA);

该方案的优势是不需要额外自定义逻辑,同时会自动适配对应地区的其他日期展示规则。

方法2:强制指定周起始规则(不受Locale影响)

如果你的应用需要固定以周一为起始日,不跟随用户系统Locale变化,可以通过WeekFields自定义周规则后赋值给DatePicker:

import java.time.DayOfWeek;
import java.time.temporal.WeekFields;
import java.time.chrono.IsoChronology;
import javafx.scene.control.DatePicker;

DatePicker datePicker = new DatePicker();
// 自定义周规则:周一是周首日,每年第一周至少包含4天(符合ISO 8601标准)
WeekFields customWeekRule = WeekFields.of(DayOfWeek.MONDAY, 4);
// 给DatePicker设置自定义规则的年表
datePicker.setChronology(IsoChronology.INSTANCE.with(customWeekRule));

该方案的优势是规则固定,不会因为用户所在地区、系统语言设置变化导致日历布局改变。


内容的提问来源于stack exchange,提问作者Tarik Mujcic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:15:04