joda时间解析方法返回格式

时间:2015-04-15 13:00:55

标签: java jodatime

我有一个非常简单的问题 - 我在这里阅读了几个主题,但我仍然不明白如何变得简单。我想发送字符串到方法并获取joda日期。我没有问题建立它,但返回格式是2015-03-11T17:13:09:000 + 01:00。如何从下面提到的方法中获得所需的(例如mmm-dd hh:mm)格式(它必须是用于FX表单上的排序目的的dateTime)?我试图用另一个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;
}

2 个答案:

答案 0 :(得分:0)

你是什么意思"返回格式"? "格式"这里的术语只能与DateTime对象的字符串表示相关。这意味着您应该指定输入字符串的格式(您已经在代码中完成的内容) - 并且将创建相应的DateTime对象。之后你可能会使用toString()检查结果,但DateTime.toString()根据JavaDoc使用ISO8601格式(yyyy-MM-ddTHH:mm:ss.SSSZZ) - 这样就可以获得{ {1}}结果。

因此,为了获得所需,您可以尝试使用所需格式的2015-03-11T17:13:09:000+01:00方法。但是再一次 - 它只是将toString(String pattern)转换为DateTime的输出格式,不会影响String中存储的日期时间对象。

答案 1 :(得分:0)

我只使用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));
相关问题