【问题标题】:Setting "today date" in DatePicker by timezone (Android)按时区在 DatePicker 中设置“今天日期”(Android)
【发布时间】:2017-03-15 07:01:20
【问题描述】:

我正在尝试按应用指定的时区设置日期选择器。我在应用当前选择和 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);

【问题讨论】:

    标签: java android datepicker


    【解决方案1】:

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

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

    【讨论】:

    • 我更关心更改日期选择器拨号“当前粗体日期”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多