본문 바로가기
Android Studio

[Android Studio] 날짜/시간 정보 입력받기 (DatePickerDialog/TimePickerDialog)

by coding_su 2023. 2. 10.

📝날짜/시간 정보 입력받기 (DatePickerDialog/TimePickerDialog)

버튼을 클릭하면 DatePickerDialog로 날짜를 입력받기
btnDate.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // 오늘 날짜로 셋팅하기 위해 변수로 저장
        Calendar current = Calendar.getInstance();
        int y = current.get(Calendar.YEAR);
        int m = current.get(Calendar.MONTH);
        int d = current.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog datePickerDialog = new DatePickerDialog(AddActivity.this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                // 월은 0이 1월이기때문에 +1해서 사용해준다(0부터 11까지 있다)
                Date = year + "-" + (month + 1) + "-" + dayOfMonth;
                btnDate.setText(Date);
            }
        }, y, m, d); // 날짜 셋팅한 변수 입력
        // 화면에 보여주기
        datePickerDialog.show();
    }
});

 

+ 월과 일이 한자리 수 일때 앞에 0을 붙여주고 싶다면 if문을 활용한다

// 월은 +1해서 저장
int m = month + 1;

// 선택한 월이 한자리수일때
String strM;
if (m < 10) {
    strM = "0"+m;
} else {
    strM = ""+m;
}

// 선택한 일이 한자리수일때
String strD;
if (dayOfMonth < 10) {
    strD = "0"+dayOfMonth;
} else {
    strD = ""+dayOfMonth;
}

Date = year + "-" + strM + "-" + strD;
btnDate.setText(Date);

버튼을 클릭하면 TimePickerDialog로 시간을 입력받기
btnTime.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Calendar current = Calendar.getInstance();
        int h = current.get(Calendar.HOUR_OF_DAY);
        int m = current.get(Calendar.MINUTE);

        TimePickerDialog timePickerDialog = new TimePickerDialog(AddActivity.this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
           
                // 시가 한자리 수일때 0을 붙여주기
                String strH;
                if (hourOfDay < 10) {
                    strH = "0"+hourOfDay;
                } else {
                    strH = ""+hourOfDay;
                }
                // 분이 한자리 수일때 0을 붙여주기
                String strM;
                if (minute < 10) {
                    strM = "0"+minute;
                } else {
                    strM = ""+minute;
                }

                Time = strH + ":" + strM;
                btnTime.setText(Time);
            }
        }, h, m, true); // 12시간 AM/PM은 false 24시로 보여주기는 true
        timePickerDialog.show();
    }
});

 

is24HourView가 true일때 / false일때 선택하는 화면

 

+ PickerDialog 객체 생성한 것을 변수에 저장하지 않고 간단하게 만들어 사용할 수도 있다

Calendar current = Calendar.getInstance();
new TimePickerDialog(AddActivity.this, new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

        String strH;
        if (hourOfDay < 10) {
            strH = "0"+hourOfDay;
        } else {
            strH = ""+hourOfDay;
        }
        String strM;
        if (minute < 10) {
            strM = "0"+minute;
        } else {
            strM = ""+minute;
        }

        Time = strH + ":" + strM;
        btnTime.setText(Time);
    }
}, current.get(Calendar.HOUR_OF_DAY), current.get(Calendar.MINUTE), true).show();

댓글