如何在Joda日期时间中将日期时间字符串输入转换为格式化日期时间字符串

时间:2015-12-23 06:17:39

标签: java jodatime

我编写了一个函数将日期时间字符串转换为格式化的日期时间字符串并返回结果。

输入日期时间字符串= 2015-12-16 12:27:07.0 输出日期时间String = 02/20/2016 12:32 PM

public static String convertDateToCustomFormat(String dateString) {
        DateFormat dbDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        DateFormat uiDateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
        String date = null;
        try {
            date = uiDateFormat.format(dbDateFormat.parse(dateString));

        } catch (ParseException e) {

            e.printStackTrace();
        }

        return date;
    }

上面的函数工作正常。但是我使用java.text.SimpleDateFormat来格式化字符串。我试图将相同的功能转换为joda.time.format.DateTimeFormat但是我收到一条错误消息说

java.lang.IllegalArgumentException: Invalid format: "2015-12-16 12:27:07.0" is malformed at ".0"

这是我使用joda日期时间的新功能

输入日期时间字符串= 2015-12-16 12:27:07.0 输出日期时间应该是这样的 = 02/20/2016 12:32 PM

public static String convertDateToCustomFormat(String dateString) {
        DateTimeFormatter dbDateFormat = DateTimeFormat
                .forPattern(("yyyy-MM-dd HH:mm:ss .aa"));
        DateTimeFormatter uiDateFormat = DateTimeFormat
                .forPattern("MM/dd/yyyy hh:mm:ss aa");
        DateTime date = null;

        date = dbDateFormat.parseDateTime(dateString);

        return uiDateFormat.print(date);
    }

请让我知道我在哪里犯了错误。

1 个答案:

答案 0 :(得分:5)

试试这个,仅供参考DatetimeFormat

insertRowAtIndexPath