2017-08-25 1 views
0

ich die Stunden und Minuten aus einem TimePickerDialog erhalten:Android: Anzeigenzeit in der richtigen Format, wenn ich Stunden und Minuten habe als int

public void onTimeSet(TimePicker view, int hour, int minute) { 
    // Do something with the time chosen by the user 
} 

Ich mag irgendwo anders dieses Mal angezeigt werden soll. Mein Ansatz wäre es, die Benutzereinstellungen für 12h oder 24h-Format mit

DateFormat.is24HourFormat() 

zu überprüfen und dann die Zeit Text manuell erstellen.

Meine Frage: Gibt es einen besseren Weg, das zu tun?

Antwort

0

können Sie die Timepicker zwingen 12 Stunden sein Wähler timePicker.setIs24HourView(boolean):

SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss); 

oder ändern HH-hh 12 Stunden zu erhalten:

timePicker.setIs24HourView(DateFormat.is24HourFormat(getContext())); 
+0

Ich meine, dass Sie den Zeittext nicht manuell behandeln müssen. Wechseln Sie zum Format des Zeitpickers und erhalten Sie das gewünschte Format der Zeit. –

+0

Vielen Dank für Ihre Antwort. Aber so zwinge ich das 12-Format auf jeden Benutzer, oder? Da ich selbst aus Deutschland komme, möchte ich die Möglichkeit geben, das 24-Stunden-Format zu nutzen. –

1

Sie Simple wie dies für 24 Stunden nutzen können format:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss); 

t Henne nur verwenden:

dateFormat.format(yourDate); 

, die Sie Kalender mit bekommen können: (soruce: javadoc)

public static final int HOUR

SimpleDateFormat dateFormat; 
if (DateFormat.is24HourFormat()) { 
    dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss); 
} else { 
    dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss); 
} 
Calendar c = new Calendar.getInstance(); 
c.set(Calendar.HOUR, yourIntHour); // Or HOUR_OF_DAY 
c.set(Calendar.MINUTE, yourIntMinute); 
Date d = c.getTime(); 
String dateResult = dateFormat.format(d); 

Sie HOUR_OF_DAY statt HOUR verwenden können

Feldnummer zum Abrufen und Festlegen der Stunde der Morgen oder Nachmittag. HOUR wird für die 12-Stunden-Uhr (0 - 11) verwendet. Mittag und Mitternacht durch 0, nicht mit 12 Eg dargestellt, bei 10: 04: 15.250 Uhr der HOUR 10.

public static HOUR_OF_DAY

Feldnummer für Get und Set zeigt die Stunde final int des Tages. HOUR_OF_DAY wird für die 24-Stunden-Uhr verwendet. Z. B. um 10: 04: 15.250 PM ist die HOUR_OF_DAY 22.

+0

Vielen Dank, aber ich muss immer manuell nach DateFormat.is24HourFormat() suchen? Also gibt es keine Möglichkeit, das Ergebnis von timePicker so zu speichern, dass es automatisch das richtige Format anzeigt, wenn ich es verwende? –

+0

Dies könnte eine Antwort für Sie sein: https://StackOverflow.com/Questions/11093182/Date-Format-Based-on-user-Locale-on-android Ich persönlich mag die meisten die letzte Antwort – tonakriz

+0

Vielen Dank, dass schon löst meine nächste Frage. –

Verwandte Themen