Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Формат возврата метода анализа времени joda

Автор вопроса: CavasОтветов: 2

У меня очень простой вопрос - я прочитал пару тем здесь, но так и не понял, как получить простую вещь. Я хочу отправить строку в метод и вернуть дату joda. У меня не было проблем с его сборкой, но формат возврата 2015-03-11T17:13:09:000+01:00. Как я могу получить желаемый формат (например, ммм-дд чч: мм) из нижеприведенного метода (это должно быть дата и время для целей сортировки в форме FX)? Я попытался сыграть с другим dateTimeFormatter, но мне не повезло. заранее большое спасибо

public static DateTime stringToDateTime(String textDate) throws ParseException
{
    DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
    DateTime jodaTime = dateTimeFormatter.parseDateTime(textDate);

    return jodaTime;
}

javajodatime

Ответы

Ответ 1 · FlasH from Ru

Что вы подразумеваете под "форматом возврата"? Термин "формат" здесь может относиться только к строковому представлению объекта DateTime. Это означает, что вы должны указать формат вашей входной строки (то, что вы уже сделали в своем коде) - и будет создан соответствующий объект DateTime. После этого вы, вероятно, используете toString() для проверки результатов, но DateTime.toString() использует формат ISO8601 (гггг-ММ-ддTHH:мм:сс.SSSZZ) в соответствии с JavaDoc - это даст вам результат 2015-03-11T17:13:09:000+01:00.

Итак, чтобы получить желаемое, вы можете попробовать использовать метод toString(String pattern) с нужным вам форматом. Но еще раз - это просто выходной формат для преобразования DateTime в String, он не влияет на дату и время, хранящиеся в вашем объекте DateTime.

Ответ 2 · Black_Buster

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

    static String stringToDateTime(String textDate) {

    Calendar c = new GregorianCalendar();
    // How you want the input to be formatted
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        Date date = df.parse(textDate);
        c.setTime(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    // How do you want to print your date
    df= new SimpleDateFormat("dd-MM-yy");
    return df.format(c.getTime());
}

// input
    String myDate = "2015-04-15 14:25:25";
    System.out.println(stringToDateTime(myDate));

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы