Nella mia app ho un'opzione per sospendere l'esecuzione per un certo periodo di tempo. Voglio mostrare il momento in cui l'esecuzione riprenderà, compresi i secondi, e voglio che la stringa temporale sia formattata secondo le impostazioni sustem. Questo è il codice mi si avvicinò con:SimpleDateFormat.getTimeInstance ignora il formato 24 ore
long millis = getResumeTime();
String timeString;
timeString = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM).format(millis);
Ciò produce una stringa formattata con i secondi, ma restituisce ora AM/PM-formattato, anche se ho impostare il formato a 24 ore nelle impostazioni. È ancora più divertente dal momento che il tempo nella barra delle applicazioni è formattato correttamente utilizzando il formato 24 ore.
Ho provato ad utilizzare DateFormat.getTimeFormat come questo:
long millis = getResumeTime();
String timeString;
java.text.DateFormat df = android.text.format.DateFormat.getTimeFormat(this);
timeString = df.format(millis);
Ma la stringa risultante non contiene secondi, e non vedo un modo per includerli.
Sto eseguendo questo codice sull'emulatore Android 4.2. Mi sto perdendo qualcosa qui? SimpleDateFormat non è a conoscenza dell'impostazione 12/24 ore? In caso contrario, come si ottiene una rappresentazione in formato stringa del tempo (comprese ore, minuti e secondi) nel formato di sistema?
Duplicato? http://stackoverflow.com/questions/9235934/get-preferred-date-format-string-of-android-system –
No. Discutono il formato della data. Sono interessato al formato dell'ora. Sfortunatamente non funzionano sempre allo stesso modo. –
Se si sostituisce getTimeFormat per getDateFormat 'android.text.format.DateFormat.getTimeFormat (getApplicationContext()))'? –