java - 按时区在 DatePicker 中设置 "today date"(Android)

标签 java android datepicker

我正在尝试按应用指定的时区设置日期选择器。我在应用当前选择和 minDates 方面取得了一定的成功,但我无法更改今天的日期(日期选择器对话框中的粗体数字)。我上传了一张图片,其中显示了日期选择器使用 getDefult 时区来设置今天的日期而不是指定的时区。

如何指定今天的日期?

billDate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                billDateDialog.show();
                billDateDialog.updateDate(billDateCal.get(Calendar.YEAR), billDateCal.get(Calendar.MONTH), billDateCal.get(Calendar.DAY_OF_MONTH));
            }
        });

        billDateDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                long correctedTime = new DayLightSavings(BillsAdd.this, year, monthOfYear, dayOfMonth, timeZone).getCorrectedTime();
                billDateCal.setTimeInMillis(correctedTime);
                billDate.setText(dateFormatter.format(billDateCal.getTimeInMillis()));
            }

        },billDateCal.get(Calendar.YEAR), billDateCal.get(Calendar.MONTH), billDateCal.get(Calendar.DAY_OF_MONTH));

        long oneDay = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS);

        long oldRawOffset = TimeZone.getDefault().getRawOffset();
        long newRawOffset = timeZone.getRawOffset();
        long rawOffset = oldRawOffset - newRawOffset;

        billDateDialog.getDatePicker().setMinDate(Calendar.getInstance().getTimeInMillis() + oneDay - rawOffset);

enter image description here

最佳答案

您可以查看此代码。这可能对您有所帮助...

    //Create calendar instance
    final Calendar c = Calendar.getInstance();
    year = c.get(Calendar.YEAR);
    month = c.get(Calendar.MONTH);
    day = c.get(Calendar.DAY_OF_MONTH);

    // Launch Date Picker Dialog
    final DatePickerDialog dpd = new DatePickerDialog(this,
            new DatePickerDialog.OnDateSetListener() {

                @Override
                public void onDateSet(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {
                    // Display Selected date in textbox
                    tvStartdate.setText(dayOfMonth + "-"
                            + (monthOfYear + 1) + "-" + year);
                    tvStartdate.setTextColor(Color.BLACK);
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    String formatedDate = sdf.format(new Date(year - 1900, monthOfYear, dayOfMonth));
                    sd = formatedDate;

                }
            }, year, month, day);
    dpd.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    dpd.show();

关于java - 按时区在 DatePicker 中设置 "today date"(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42803051/

相关文章:

android - 尝试为项目配置 IIS Express 时发生错误。由于权限不足,redirection.config 无法读取文件

javascript - 为什么 datepicker() 接受参数 'getDate' ?

java - 删除 NatTable 中的列

java - 如何将二维数组打印为矩阵格式

java - 什么是属性?

java - 从可运行/TimerTask 中检索字符串

java - Android 数据库返回 null

android - 如何设置 Android ScrollView 褪色边缘的颜色?

binding - JavaFX : Binding button disable property to ComboBox and DatePicker

javascript - UI日期选择器代码格式