Условный формат даты во Flash

#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));