#actionscript-3 #flash #air
#actionscript-3 #flash #air
Вопрос:
Я форматирую текущую дату в проекте AIR Mobile следующим образом:
var dateFormatter:DateTimeFormatter = new DateTimeFormatter( Capabilities.language );
dateFormatter.setDateTimePattern("EEEE d");
trace(dateFormatter.format(date));
Это работает идеально, но поскольку у меня есть ограничение по ширине (может отображаться только 12 символов), проблема в том, что на некоторых языках, таких как португальский, возвращается формат EEEE Segunda-feria
, означающий, что количество символов будет равно 16 (включая номер дня).
Есть ли способ установить условное форматирование, означающее, что EEEE не может превышать более 10 символов? (то есть: используйте EEEE всегда, но если оно превышает более 12 символов, отобразите EEE)
Комментарии:
1. Тогда как бы вы хотели, чтобы он отображался? Один из способов — собрать длину строки и сократить ее с помощью dateString.splice(12, dateString . длина)
2. Там я добавил пример того, что я запрашиваю.
Ответ №1:
Попробуйте что-то вроде этого:
var str_tmp: String ="";
var dateFormatter :DateTimeFormatter = new DateTimeFormatter( Capabilities.language );
dateFormatter.setDateTimePattern("EEEE d");
//# check for larger than 12 chars
str_tmp = dateFormatter.format(date);
if ( str_tmp.length > 12 ) { dateFormatter.setDateTimePattern("EEE d"); }
trace(dateFormatter.format(date));