2010-04-09 4 views
9

Je reçois le temps à l'aide d'un sélecteur de temps et d'afficher l'heure dans la vue de texte en utilisant le code suivant ...Affichage de l'heure AM/format PM dans 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))); 
    } 
}; 

Maintenant, la question est quand je Réglez l'heure comme 20:00 puis je reçois l'heure affichée comme 20: 0 ... Je veux afficher l'heure comme 20:00 ... Comment puis-je faire cela ???

+1

Beaucoup de gens ont répondu à vos questions, vous venez de ne répondez pas, ne pas marquer comme réponse. Cela laisse peu de motivation pour vous aider. – synic

+1

En outre, beaucoup de vos questions sont en fait répondu, mais alors vous continuez à poser plus de questions dans les commentaires, et encore laisser la question sans réponse. Vous devez les marquer comme étant des réponses, puis poser une nouvelle question. – synic

+0

Je suis encore un débutant à Stack Overflow. A partir de maintenant je vais prendre vos suggestions et le faire en conséquence .. Merci pour vos précieuses suggestions ... –

Répondre

16

J'ai fait comme ceci pour l'accomplir.

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 et merci, votre idée a fonctionné pour moi. –

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

travaillé pour moi, très simple façon –

+0

travaillé comme requis, merci –

+0

Est-ce qu'il donne aussi 'Am/PM'? Il semble que ce ne sera pas – eRaisedToX

2

J'ai fait comme ceci pour l'accomplir.

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

Celui-ci est le parfait ... –

0

Cela a fonctionné pour moi:

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

Mais selon mon SimpleDateFormat serait la meilleure utilisation, comme avis ceci:

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

Il est préférable que le calendrier par default retournera 00 pour 12 heures, ce que vous pourriez ne pas vouloir.

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

Pour ceux qui pourraient deviner ce qui est 'currnetDateTime' dans le code de Pravin comme je l'étais;), Il est' Calendar currnetDateTime = Calendar.getInstance(); 'et ensuite' SimpleDateFormat df = nouveau SimpleDateFormat ("HH: mm: ss a"); Chaîne 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"); 
} 
Questions connexes