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

我如何指定今天的日期?

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


java - 在DatePicker中按时区设置“今天的日期”(Android)-LMLPHP

最佳答案

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

    //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();

10-07 19:31
查看更多