我写了一个函数将日期时间字符串转换为格式化的日期时间字符串并返回结果.
输入日期时间字符串= 2015-12-16 12:27:07.0
输出日期时间字符串=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); }
请让我知道我在哪里犯了错误.
试试这个,FYI DatetimeFormat
public static String convertDateToCustomFormat(String dateString) { DateTimeFormatter dbDateFormat = DateTimeFormat .forPattern(("yyyy-MM-dd HH:mm:ss.S")); DateTimeFormatter uiDateFormat = DateTimeFormat .forPattern("MM/dd/yyyy hh:mm:ss a"); DateTime date = null; date = dbDateFormat.parseDateTime(dateString); return uiDateFormat.print(date); }