2016-04-12 4 views
2

У меня проблема с SimpleDateFormat на Android. Используя этот код:android SimpleDateFormat неправильный формат android 4.x

private static final String TIME_FORMAT = "HH:mm:ss,S"; 
SimpleDateFormat timeFormat = new SimpleDateFormat(TIME_FORMAT, Locale.US); 
String time = timeFormat.format(time.getTime()); 

time имеет следующий формат "12: 30: 25,187" вместо "12: 30: 25,1". Это происходит только в версиях 4.x.

+0

Подтверждено на моем устройстве 4.4. Я не уверен, что вы можете что-то сделать с этим, кроме проверки количества цифр после запятой и выключения последних двух, если их три. –

+0

пока что остается единственным решением! – TheRedFox

+0

Похоже, что оно исправлено на 5.x: https://code.google.com/p/android/issues/detail?id=78859&can=1&q=simpledateformat%20fractional&colspec=ID%20Status%20Priority%20Owner%20Summary% 20Stars% 20Reporter% 20Opened – assylias

ответ

0

Пока это мое решение.

String formatted = timeFormat.format(time); 
String[] splitted = formatted.split(","); 
if(splitted.length > 1) { 
    String tenth = splitted[1]; 
    if(tenth.length() > 1) { 
     tenth = tenth.substring(0,1); 
     formatted = splitted[0] + "," + tenth; 
    } 
} 
+0

Я вроде как оговорюсь в своем предыдущем комментарии. Вам действительно не нужно считать, или даже расколоть. Вы можете просто сделать: 'formatted = formatted.substring (0, formatted.indexOf (", ") + 2);' –

Смежные вопросы