DatePickerDialog 顯示順序由系統區域設置決定,無公共 API 直接修改。需自定義對話框或使用 MaterialDatePicker (Material Components 庫)。
implementation "com.google.android.material:material:1.10.0"
// 使用
MaterialDatePicker picker = MaterialDatePicker.Builder.datePicker()
.setTitleText("選擇日期")
.setSelection(MaterialDatePicker.todayInUtcMilliseconds())
.build();
picker.addOnPositiveButtonClickListener(selection -> {
String yyyyMMdd = new SimpleDateFormat("yyyyMMdd", Locale.getDefault())
.format(new Date(selection));
// 使用 yyyyMMdd
});
picker.show(getSupportFragmentManager(), "DATE_PICKER");
public class YmdDatePickerDialog extends DatePickerDialog {
public YmdDatePickerDialog(Context context, OnDateSetListener listener, int year, int month, int day) {
super(context, listener, year, month, day);
}
@Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
// 可選:實時更新標題顯示為 yyyy-MM-dd
setTitle(String.format(Locale.getDefault(), "%04d-%02d-%02d", year, month+1, day));
}
}
參考 StackOverflow 高票回答:android-format-date-to-mm-dd-yyyy-from-datepicker
DatePickerDialog 格式 Hack,遷移至 Material Components。MaterialDatePicker 相關類到項目中使用。