2010-04-09 4 views
9

angezeigt Ich bin die Zeit mit einer Zeitauswahl bekommen und die Zeit, in der Textansicht anzuzeigen folgenden Code verwenden ...die Zeit in AM/PM-Format in android

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     Toast.makeText(SendMail.this, "Your Appointment time is "+hourOfDay+":"+minute, Toast.LENGTH_SHORT).show(); 
     TextView datehid = (TextView)findViewById(R.id.timehidden); 
     datehid.setText(String.valueOf(hourOfDay)+ ":"+(String.valueOf(minute))); 
    } 
}; 

Nun ist das Problem, wenn i setze die Zeit auf 20:00 Uhr, dann bekomme ich die Zeit als 20: 0 angezeigt ... Ich möchte die Zeit als 20:00 Uhr anzeigen ... Wie kann ich das tun ???

+1

Viele Leute haben Ihre Fragen beantwortet, Sie reagieren einfach nicht, nicht als beantwortet Zeichen. Es gibt wenig Motivation, Ihnen zu helfen. – synic

+1

Auch viele Ihrer Fragen sind in der Tat beantwortet, aber dann gehen Sie weiter Fragen in den Kommentaren zu stellen, und immer noch die Frage als unbeantwortet. Sie sollten sie als beantwortet markieren und dann eine neue Frage stellen. – synic

+0

Ich bin immer noch ein Neuling für Stack Overflow. Von jetzt an nehme ich deine Vorschläge und tue es entsprechend .. Danke für deine wertvollen Vorschläge ... –

Antwort

16

Ich habe so getan, um es zu erreichen.

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() { 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     TextView datehid = (TextView)findViewById(R.id.timehidden); 
     if(hourOfDay>12) { 
      datehid.setText(String.valueOf(hourOfDay-12)+ ":"+(String.valueOf(minute)+"pm")); 
     } else if(hourOfDay==12) { 
      datehid.setText("12"+ ":"+(String.valueOf(minute)+"pm")); 
     } else if(hourOfDay<12) { 
      if(hourOfDay!=0) { 
       datehid.setText(String.valueOf(hourOfDay) + ":" + (String.valueOf(minute) + "am")); 
      } else { 
       datehid.setText("12" + ":" + (String.valueOf(minute) + "am")); 
      } 
     } 
    } 
};  
+0

+1 und danke, Ihre Idee arbeitete für mich. –

31
private String getReminingTime() { 
    String delegate = "hh:mm aaa"; 
    return (String) DateFormat.format(delegate,Calendar.getInstance().getTime()); 
} 
+0

hat für mich funktioniert, sehr einfache Art und Weise –

+0

funktioniert wie erforderlich, danke –

+0

Gibt es 'Am/PM' auch? Scheint wird es nicht – eRaisedToX

2

Ich habe so getan, um es zu erreichen.

TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() { 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay); 
     myCalendar.set(Calendar.MINUTE, minute); 
     update_From_Time(); 
    } 
}; 

DateFormat frmTime=DateFormat.getTimeInstance(); 
protected void update_From_Time() { 
    s = frmTime.format(myCalendar.getTime()); 
    btnFromTime.setText(s); 
} 
+0

Dieser ist der perfekte ... –

0

Dieser arbeitete für mich:

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); 
} 
1
int am_pm=mycalendar.get(Calendar.AM_PM); 
String amOrpm=((am_pm==Calendar.AM)?"am":"pm"); 

Aber nach meiner Meinung Simple wäre die beste Verwendung, wie folgt aus:

final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Chicago")); 
SimpleDateFormat format = new SimpleDateFormat("h:mm a"); 
format.setTimeZone(c.getTimeZone()); 
String myFormatted time = format.format(c.getTime()); 

Es ist besser, als der Kalender durch Standard wird 00 für 12 Uhr zurückgeben, was Sie möglicherweise nicht möchten.

5
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss a"); 
String currentTime = df.format(currnetDateTime.getTime()); 
+1

Für jeden, der in Pravins Code 'currnetDateTime' vermuten könnte, genau wie ich;), ist es' Calendar currnetDateTime = Calendar.getInstance(); 'und dann' SimpleDateFormat df = neues SimpleDateFormat ("HH: mm: ss a"); Zeichenfolge currentTime = df.format (currnetDateTime.getTime()); ' – eRaisedToX

1
Calendar now = Calendar.getInstance(); 
if(now.get(Calendar.AM_PM) == Calendar.AM){ 
    // AM 
    System.out.println(""+now.get(Calendar.HOUR)+":AM"); 
}else{ 
    // PM 
    System.out.println(""+now.get(Calendar.HOUR)+":PM"); 
} 
Verwandte Themen