6
votes

Montrer l'heure actuelle dans Timepicker à Android

J'utilise ce code pour montrer l'heure actuelle dans TimePicker, mais je ne sais pas vraiment, pourquoi ça ne montre pas correctement !? Par exemple, le temps (heure du système) est 2h56, mais cela montre 2h56 !. Comment puis-je le résoudre? Merci.

private String convertTimeToString(long time) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(time);

    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    //int hour = get;
    int minute = calendar.get(Calendar.MINUTE);

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

    String minutes;
    if (minute < 10) {
        minutes = "0" + minute;
    } else {
        minutes = String.valueOf(minute);
    }
    // Append in a StringBuilder
    return String.format("%s:%s %s", hour, minutes, timeSet);

}


2 commentaires

Vérifiez ma réponse Vous devez utiliser heure = C.get (calendrier.hour_of_day);


Définir hour_of_day au lieu de champ heure à l'heure.


3 Réponses :


2
votes
// display current time
    public void setCurrentTimeOnView() {

        tvDisplayTime = (TextView) findViewById(R.id.tvTime);
        timePicker1 = (TimePicker) findViewById(R.id.timePicker1);

        final Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR_OF_DAY);
        minute = c.get(Calendar.MINUTE);

        // set current time into textview
        tvDisplayTime.setText(
                    new StringBuilder().append(pad(hour))
                                       .append(":").append(pad(minute)));

        // set current time into timepicker
        timePicker1.setCurrentHour(hour);
        timePicker1.setCurrentMinute(minute);

    }

3 commentaires

Merci, mais la sortie de cette méthode doit être une chaîne, car j'en ai besoin dans d'autres parties de ce Proje. Aidez-moi s'il vous plaît comment puis-je le faire maintenant?


Essayez de voir la dernière réponse dans ce message: Stackoverflow.com/questions/3992820/...


avec ceci: return string.format ("% s:% s% s", integer.tostring (heure), minutes, mensuel);



2
votes

Remplacez cette ligne: xxx

à: xxx


2 commentaires

Merci, mais il y a un autre problème, lorsque je veux convertir du temps en forme de chaîne. Je l'explique maintenant.


@ user3671748 Veuillez accepter et uppoter la réponse. Donc, d'autres peuvent en bénéficier.



4
votes

mis à jour fort>
1) strong> problème horrible: essayez de modifier le code comme celui-ci:

formatter.format(new Date(yourLongTimestamp));


4 commentaires

Merci, mais il y a un autre problème, lorsque je veux convertir du temps en forme de chaîne. Je l'explique maintenant le temps


Pas du tout. Lorsque vous obtenez une réponse utile, il est bon de l'accepter (point de contrôle dans le coin supérieur gauche)


Excusez-moi, j'ai vérifié Mark mais je ne sais pas que cela change, je ne comprends pas votre méchanceté, mais je ne sais pas dès que j'écris merci.


Maintenant, le temps, je marque toutes les réponses post, mais ils sont non marqués! (Après avoir fait défiler la page)