I am using a date picker and time picker in my application. I want to set the date and time when the page loads. Is this possible? How so?
6 Answers
I solved a similar problem of mine as follows
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int min = cal.get(Calendar.MINUTE);
datePicker.updateDate(year, month, day);
timePicker.setCurrentHour(hour);
timePicker.setCurrentMinute(min);
 
    
    - 3,013
- 4
- 25
- 35
- 
                    1setHour() and setMinute() since Android API 23. – Zon Jun 06 '17 at 13:43
- 
                    The update month is from 0 (Jan) to 11 (Dec), but days begin at 1. – Tim Biegeleisen Aug 07 '17 at 15:54
Using JodaTime
JodaTime is an extremely popular and useful library for handling dates and times in Java. If you're not using it, I highly recommend taking a look at it.
Here's a simple example of how I set a DatePicker and TimePicker from a DateTime object, which could be the current date or any date from the past or future (the attribute in this case is called inspected_at):
DatePicker datePicker = (DatePicker) findViewById(R.id.inspected_at_date);
TimePicker timePicker = (TimePicker) findViewById(R.id.inspected_at_time);
DateTime inspected_at = DateTime.now()                // Typically pulled from DB.
int year    = inspected_at.getYear() ;
int month   = inspected_at.getMonthOfYear() - 1;      // Need to subtract 1 here.
int day     = inspected_at.getDayOfMonth();  
int hour    = inspected_at.getHourOfDay();
int minutes = inspected_at.getMinuteOfHour();
datePicker.updateDate(year, month, day);              // Set date.
timePicker.setCurrentHour(hour);                      // Set time.
timePicker.setCurrentMinute(minutes);
Hope that helps.
JP
 
    
    - 45,245
- 23
- 243
- 245
- 
                    1If you're reading this question and you don't know what JodaTime is, take some time to check it out. It has a lot of advantages over java.util.Calendar – jmaculate Jul 15 '14 at 19:09
- 
                    It should be noted that Java8 introduced the java.time package, which provides excellent support for handling dates and times without requiring a third-party dependency on JodaTime. – Reinstate Monica Feb 07 '19 at 16:51
There is a updateDate method for the DatePicker.
Here is what I use in one of my app, not using a dialog:
//set datePicker to position
String date_saved = project_row.getString(
    project_row.getColumnIndex("project_startdate"));
int day  = Integer.parseInt(date_saved.substring(0,2));
int year = Integer.parseInt(date_saved.substring(5,9));
String month = date_saved.substring(2,5);
int month_code = getMonthInt(month);
project_startdate_data = (DatePicker) findViewById(R.id.project_startdate_data);
project_startdate_data.updateDate(year, month_code, day);
where project_row is my cursor, and the date is saved in the column project_startdate like 22MAY2012 
and you need this:
private int getMonthInt(String month) {
    if (month.equalsIgnoreCase("JAN")) return 0;
    if (month.equalsIgnoreCase("FEB")) return 1;
    if (month.equalsIgnoreCase("MAR")) return 2;
    if (month.equalsIgnoreCase("APR")) return 3;
    if (month.equalsIgnoreCase("MAY")) return 4;
    if (month.equalsIgnoreCase("JUN")) return 5;
    if (month.equalsIgnoreCase("JUL")) return 6;
    if (month.equalsIgnoreCase("AUG")) return 7;
    if (month.equalsIgnoreCase("SEP")) return 8;
    if (month.equalsIgnoreCase("OCT")) return 9;
    if (month.equalsIgnoreCase("NOV")) return 10;
    if (month.equalsIgnoreCase("DEC")) return 11;
    //return -1 if month code not found
    return -1;
}
 
    
    - 50,076
- 60
- 203
- 339
 
    
    - 4,672
- 11
- 54
- 73
Check this How to use date picker dialog. and use update function in onCreate(); if by page loads you mean activity starts.... hope it helps.
 
    
    - 13,290
- 2
- 33
- 59
Check this.
Use showDialog(TIME_DIALOG_ID); function in onCreate();
 
    
    - 21,321
- 22
- 95
- 134
 
    
    - 5,975
- 3
- 32
- 30
Use this code in kotlin
private fun setTime(hours: Int, minutes: Int) {
        @Suppress("DEPRECATION")
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            binding.timePickerLayout.timePicker.hour = hours
            binding.timePickerLayout.timePicker.minute = minutes
        } else {
            binding.timePickerLayout.timePicker.currentHour = hours
            binding.timePickerLayout.timePicker.currentMinute = minutes
        }
    }
 
    
    - 276
- 3
- 10
