Ravi Parsania
Ravi Parsania

Reputation: 715

how to set AM/PM in TimePickerDialog?

I have create simple TimePickerDialog they are perfectly work but if i have set current time in time picker then problem to set AM and PM.

let see....

If Current time is : 5:39 PM

this is my code..

Calendar cal = Calendar.getInstance();
int mHour = cal.get(Calendar.HOUR_OF_DAY);
int mMinute = cal.get(Calendar.MINUTE);
int mTimeSet=cal.get(Calendar.AM_PM);
TimePickerDialog tpd = new TimePickerDialog(this,new TimePickerDialog.OnTimeSetListener()
        {
                    @Override
                    public void onTimeSet(TimePicker view, int hours,int minute)
                    {
                        String timeSet = "";
                        if (hours > 12) {
                            hours -= 12;
                            timeSet = "PM";
                        } else if (hours == 0) {
                            hours += 12;
                            timeSet = "AM";
                        } else if (hours == 12)
                            timeSet = "PM";
                        else
                            timeSet = "AM";
                        
                        String minutes="";
                        if (minute < 10)
                            minutes = "0" + minute;
                        else
                            minutes = String.valueOf(minute);
                        textView.setText(hours + ":" + minutes + " " + timeSet);
                    }
                }, mHour, mMinute,false);

        tpd.show();

Result

enter image description here

But how to set PM in time picker dialog? please any solution

Upvotes: 0

Views: 2654

Answers (3)

Akash Jindal
Akash Jindal

Reputation: 505

private void updateTime(int hours, int mins) {

        String timeSet = "";
        if (hours > 12) {
            timeSet = "PM";
            hours -= 12;
        } else if (hours == 0) {
            timeSet = "AM";
            hours += 12;
        } else if (hours == 12)
            timeSet = "PM";
        else
            timeSet = "AM";


        String minutes = "";
        if (mins < 10)
            minutes = "0" + mins;
        else
            minutes = String.valueOf(mins);

        // Append in a StringBuilder
         String aTime = new StringBuilder().append(hours).append(':')
                .append(minutes).append(" ").append(timeSet).toString();

          output.setText(aTime);
    }

Upvotes: 1

Akash Moradiya
Akash Moradiya

Reputation: 3322

try like this,

public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
{

Calendar date = Calendar.getInstance();
date.set(Calendar.HOUR_OF_DAY, hourOfDay);
date.set(Calendar.MINUTE, minute);
date.set(Calendar.AM_PM, date.get(Calendar.AM_PM));


textView.setText(date.getTime());

 }

Upvotes: 1

Naveen Tamrakar
Naveen Tamrakar

Reputation: 3339

public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
{
String am_pm = "";
Calendar datetime = Calendar.getInstance();
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
datetime.set(Calendar.MINUTE, minute);

if (datetime.get(Calendar.AM_PM) == Calendar.AM)
    am_pm = "AM";
else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
    am_pm = "PM";
String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+""; 

((Button)getActivity().findViewById(R.id.btnEventStartTime)).setText(
   strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm );
 }

TimePickerDialog and AM or PM

Upvotes: 2

Related Questions