2010-04-09 8 views
9

ja dostaję czas za pomocą próbnika czasu i wyświetlania czasu w widoku tekstu za pomocą następującego kodu ...Wyświetlanie czasu w formacie AM/PM w 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))); 
    } 
}; 

Teraz problemem jest to, kiedy ustawić czas na 20:00, a następnie uzyskać czas wyświetlany jako 20: 0 ... Chcę wyświetlić czas jako 20:00 ... Jak mogę to zrobić ???

+1

Wiele osób odpowiedziało na pytania, po prostu nie reagują, nie znak towarowy jako odpowiedzi. Pozostawia mało motywacji, aby ci pomóc. – synic

+1

Ponadto, wiele z twoich pytań W rzeczywistości odpowiedziano, ale potem zadawałeś WIĘCEJ pytań w komentarzach i nadal pozostawiasz pytanie jako bez odpowiedzi. Powinieneś oznaczyć je jako odpowiedzi, a następnie zadać nowe pytanie. – synic

+0

Nadal jestem nowicjuszem w Stack Overflow. Od teraz będę przyjmować sugestie i robić to odpowiednio. Dzięki za cenne sugestie ... –

Odpowiedz

16

Zrobiłem tak, aby to osiągnąć.

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 i dzięki, twój pomysł zadziałał dla mnie. –

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

pracował dla mnie, bardzo prosty sposób –

+0

pracował zgodnie z wymaganiami, dzięki –

+0

Czy to daje również "Am/PM"? Wydaje się, że tak nie będzie – eRaisedToX

2

Zrobiłem tak, aby to osiągnąć.

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

Ten jest idealny ... –

0

Ten pracował dla mnie:

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"); 

Ale według mojej opinii SimpleDateFormat byłoby najlepsze wykorzystanie, na przykład:

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

Lepiej jak kalendarzu przez domyślnie zwróci 00 na 12 pm, czego możesz nie chcieć.

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

Dla każdego, kto może odgadnąć, co to jest 'currnetDateTime' w kodzie Pravina, tak jak ja;), To jest' Kalendarz currnetDateTime = Calendar.getInstance(); ', a następnie' SimpleDateFormat df = nowy SimpleDateFormat ("HH: mm: ss a"); String 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"); 
} 
Powiązane problemy