Вы можете использовать com.codename1.l10n.SimpleDateFormat
для форматирования времени, хотя лично я просто использую служебный Java-код для форматирования, поскольку это проще.С Date
мы попадаем в сложности часового пояса, и это боль в шее.
Я просто обычно делаю:
public static String twoDigits(int v) {
return v < 10 ? "0" + v : "" + v;
}
Тогда:
String t = twoDigits(hh) + ":" + twoDigits(mm) + ":" + twoDigits(ss);
Обратите вниманиечто этот код более эффективен, чем код Format
.Вызов Format
должен проанализировать форматирование и затем сгенерировать результирующую строку, что является дорогостоящим шагом.Вероятно, не будет заметно в большинстве случаев, хотя.
Основная проблема, с которой мы сталкиваемся с String.format()
, заключается в ее присутствии в String
.Поскольку String является основной частью реализации, такой сложный метод добавит вес каждому приложению независимо от необходимости.Также реализация такого метода с таким количеством нюансов означала бы, что на симуляторе все будет работать иначе, чем на устройстве.Поэтому маловероятно, что мы когда-либо добавим этот метод.
На самом деле в JavaSE этот метод на самом деле является просто формой MessageFormat
, которую мы могли бы добавить в пакет codename1 l10n.Несовместимость не будет проблемой, равно как и размер / сложность.Это то, что вы можете реализовать самостоятельно и даже подать как запрос на выборку, если пожелаете.Вы можете основывать свою реализацию на исходных текстах проекта Apache, лицензированных Apache, или же вы можете создать реализацию чистой комнаты (что я часто находил проще).