我需要将日期格式化为以下格式:10.12.2014
我正在使用以下代码,但它返回以下错误
Messages:
Unparseable date: "2014-12-10"
代码
SimpleDateFormat formatter = new SimpleDateFormat("dd.mm.yyyy");
Date date = formatter.parse(param.getFromDate());
String formattedDate = formatter.format(date);
答案 0 :(得分:4)
Unparseable date
表示您的输入dateString值与预期格式不同。
例如,如果您的dateString是2014-12-10(yyyy-MM-dd
),如果您尝试将其格式化为dd-MM-yyyy
,则会发生此异常。
以下代码可以为您提供帮助。
// Existing date is in this format : "2014-12-10"
SimpleDateFormat formatFrom = new SimpleDateFormat("yyyy-MM-dd");
// Required date is in this format : 10.12.2014
SimpleDateFormat formatTo = new SimpleDateFormat("dd.MM.yyyy");
// Convert the String param.getFromDate()==>2014-12-10 to a Date
Date date = formatFrom .parse(param.getFromDate());
// Convert Date to String 10.12.2014
String formattedDate = formatTo .format(date);
答案 1 :(得分:2)
更改日期格式,您正在解析yyyy-MM-dd
并提供格式yyyy.MMMM.dd
: -
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = formatter.parse(param.getFromDate());
String formattedDate = formatter.format(date);
编辑: - 您将格式输入更新为dd.mm.yyyy
,这也是错误的,上面的解决方案也是有效的。
此外,您希望日期输出为10.12.2014
,您可以通过创建新的格式化程序并使用它将日期解析为字符串来执行此操作: -
formatter = new SimpleDateFormat("dd.MM.yyyy");
String formattedDate2 = formatter.format(date); //
答案 2 :(得分:0)
检查一下:Java Docs for SimpleDateFormat
包含日期和时间的所有模式字母,在我查看如何在我的应用中实现日期和时间时帮助了我很多。