Как получить строку формата даты для конкретного языка в Flex / ActionScript 3? - PullRequest
1 голос
/ 01 февраля 2010

Как получить строку формата даты для конкретного языка в Flex / ActionScript 3? Я не могу найти метод для возврата фактической строки формата (той, которая определяет формат даты) на основе текущей локали. Я задаю этот вопрос, потому что я надеялся найти способ преобразовать строку в дату на основе текущего короткого формата даты для локали. Java позволяет звонить:

DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT, locale)

для извлечения экземпляра DateFormat, который форматируется в соответствии с форматом SHORT на основе локали.

Существуют ли аналогичные функции в Adobe Flex (ActionScript 3) 3? Если нет, то существует ли для этого надежная сторонняя библиотека?

Ответы [ 3 ]

2 голосов
/ 20 января 2011

Я только что нашел этот пакет, который выполняет эту работу. Здесь описывается класс DateTimeFormatter:

var formatter:DateTimeFormatter = new DateTimeFormatter(LocaleID.DEFAULT, DateTimeStyle.LONG, DateTimeStyle.SHORT);
var result:String = formatter.format(date);

Просто круто.

1 голос
/ 25 февраля 2012

Расширяя ответ Гояна:

private function cc(event:FlexEvent):void {
    var formatter:DateTimeFormatter = new DateTimeFormatter(LocaleID.DEFAULT, DateTimeStyle.SHORT, DateTimeStyle.NONE);
    //now if publishDate is a mx:DateField, the formatString of spark and mx components are slightly different.
    //So, we replace all d with D and y with Y
    publishDate.formatString=replaceAll(formatter.getDateTimePattern(), ["d", "y"], ["D", "Y"]);
}

private function replaceAll(text:String, searchArray:Array, replArray:Array):String {
    for (var i:int=0; i<searchArray.length; i++) {
        var s:String=searchArray[i];
        var d:String=replArray[i];
        text=text.split(s).join(d);
    }
    return text;
}
0 голосов
/ 30 сентября 2010

Да, я должен сказать, что Java лучше с датами - вы устанавливаете локаль, и ваши даты автоматически выводятся правильно! Я не могу найти такой объект во Флексе.

Чтобы правильно выводить даты для каждой локали, я думаю, что вы должны сделать то, что написано в этой статье: http://livedocs.adobe.com/flex/3/html/help.html?content=l10n_1.html. Может быть, вы должны сделать это, и в том же классе просто сделать эти строки, Если вы извлечете файл локали, доступный для остальной части вашего приложения, то сможете работать с ним.

Иначе, может быть, библиотека этого парня поможет тебе? Я не уверен. http://flexoop.com/2008/12/flex-date-utils-date-and-time-format-part-ii/

...