Date to String <-> String to Date - PullRequest
       28

Date to String <-> String to Date

7 голосов
/ 29 июня 2010

Я получаю дату моей базы данных, и мне нужно показать ее в виде строки. Итак, во Flex я делаю это:

public static function dateToString(cDate:Date):String {
        return cDate.date.toString()+"."+
            cDate.month.toString()+"."+
            cDate.fullYear.toString()+" "+
            cDate.hours.toString()+":"+
            cDate.minutes.toString()+":"+
            cDate.seconds.toString();
}

Но я получаю, например, результат:

13.7.2010 0: 0: 15

Как мне заполнить день, месяц, часы, минуты, секунды с добавленным 0?

И я возвращаюсь от строки к дате с:

DateField.stringToDate(myTextInput.text, "DD.MM.YYYY HH:MM:SS");

Это правильно? Я хочу иметь дату, которую я перенесу через BlazeDS на сервер J2EE, но в базе данных я вижу только нулевое значение Так что что-то идет не так ...

С наилучшими пожеланиями.

Ответы [ 3 ]

19 голосов
/ 29 июня 2010

Вы видели класс DateFormatter ?

Пример:

import mx.formatters.DateFormatter;

private var dateFormatter:DateFormatter;

private function init():void
{
    dateFormatter = new DateFormatter();
    dateFormatter.formatString = 'DD.MM.YYYY HH:NN:SS'
}

public function dateToString(d:Date):String
{
    return dateFormatter.format(d);
}

public function stringToDate(s:String):Date
{
    return dateFormatter.parseDateString(s);
}

Похоже, кто-то спал в тот день, когда написал Flex 3.2, потому что DateFormatter::parseDateStringэто защищенная функция.Похоже, они исправили это на 3,5.

8 голосов
/ 15 апреля 2011

Я добавляю это, потому что функция stringToDate не работает с ответом выше, а простая оболочка не позволяет вам указать формат входной строки. Оболочка на самом деле больше не нужна, так как функция теперь статическая, но у вас все еще есть та же проблема. Я бы рекомендовал вместо этого использовать следующую статическую функцию из класса DateField.

//myObject.CreatedDate = "10022008"

var d:Date = DateField.stringToDate(myObject.CreatedDate, "MMDDYYYY");
5 голосов
/ 23 ноября 2010

Вы можете преобразовать строку в дату с помощью DateFormatter::parseDateString, но этот метод защищен (?). Чтобы получить доступ к методу DateFormatter::parseDateString, просто напишите простую оболочку:

import mx.formatters.DateFormatter;

public class DateFormatterWrapper extends DateFormatter
{
    public function DateFormatterWrapper()
    {
        super();
    }

    public function parseDate(str:String):Date
    {
        return parseDateString(str);
    }       
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...