joda时间解析方法return格式

joda time parse method return format

我有一个非常简单的问题 - 我在这里阅读了几个主题,但我仍然不明白如何获得简单的东西。我想将字符串发送到方法并取回 joda 日期。我构建它没有问题,但是 return 格式是 2015-03-11T17:13:09:000+01:00。我怎样才能从下面提到的方法中获得所需的(例如 mmm-dd hh:mm)格式(它必须是一个 dateTime,以便在 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;
}

"return format" 是什么意思? "Format" 此处的术语只能与 DateTime 对象的字符串表示形式相关。这意味着您应该指定输入字符串的格式(您已经在代码中完成的操作)- 并且将创建相应的 DateTime 对象。之后你可能使用 toString() 来检查结果,但是 DateTime.toString() 根据 JavaDoc 使用 ISO8601 格式 (yyyy-MM-ddTHH:mm:ss.SSSZZ) - 这给了你你的 2015-03-11T17:13:09:000+01:00 结果。

因此,要根据需要获取它,您可以尝试使用具有所需格式的 toString(String pattern) 方法。但再一次 - 它只是一种将 DateTime 转换为 String 的输出格式,它 不会 影响存储在 DateTime 对象中的日期时间。

我只使用 Calendar 对象,所以这是一种可行的方法:

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