W mojej aplikacji mam opcję wstrzymania wykonywania na określony czas. Chcę pokazać czas, kiedy wykonanie zostanie wznowione, w tym sekundy, i chcę, aby łańcuch czasu został sformatowany zgodnie z ustawieniami sustem. Jest to kod wymyśliłem:SimpleDateFormat.getTimeInstance ignoruje format 24-godzinny
long millis = getResumeTime();
String timeString;
timeString = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM).format(millis);
ten przynosi sformatowany ciąg z sekund, ale zwraca AM/PM-sformatowany czas, choć mam ustawić 24-godzinny format czasu w ustawieniach. Jest jeszcze zabawniej, ponieważ czas w zasobniku systemowym jest poprawnie sformatowany przy użyciu formatu 24-godzinnego.
Próbowałem za pomocą DateFormat.getTimeFormat tak:
long millis = getResumeTime();
String timeString;
java.text.DateFormat df = android.text.format.DateFormat.getTimeFormat(this);
timeString = df.format(millis);
Ale wynikowy ciąg nie zawiera sekund i nie widzę sposobu, aby je dołączyć.
Używam tego kodu na emulatorze Androida 4.2. Czy coś mi umyka? Czy SimpleDateFormat nie zna ustawienia 12/24 godzin? Jeśli nie, w jaki sposób uzyskać łańcuchową reprezentację czasu (w tym godzin, minut i sekund) w formacie systemowym?
Duplikat? http://stackoverflow.com/questions/9235934/get-preferred-date-format-string-of-android-system –
Nie. Dyskutują o formacie daty. Interesuje mnie format czasu. Niestety nie zawsze działają w ten sam sposób. –
Jeśli podstawisz getTimeFormat dla getDateFormat 'android.text.format.DateFormat.getTimeFormat (getApplicationContext()))'? –