Mazz
Mazz

Reputation: 257

Setting "today date" in DatePicker by timezone (Android)

I am trying to set a datepicker by timezone specified by the app. I have succeed somewhat in applying the current selection and minDates but I can't get today date (bold number on date picker dialogue) to change. I have uploaded a picture which shows datepicker using getDefult timezone to set today date instead of specified timezone.

How can I specify today date?

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

Upvotes: 1

Views: 1169

Answers (1)

Hossain Ahamed
Hossain Ahamed

Reputation: 119

You can check this code.This might be helpful for you...

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

Upvotes: 1

Related Questions