我写了一个函数来将日期时间字符串转换为格式化的日期时间字符串并返回结果。
输入日期时间字符串=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);
}
请告诉我哪里做错了。
最佳答案
试试这个,仅供引用 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);
}
关于java - 如何将日期时间字符串输入转换为 Joda 日期时间中的格式化日期时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34429740/