日期未正确格式化为Java
问题描述:
我试图将格式“yyyy-MM-dd”格式的格式设置为“dd MM,yyyy”,但对于某些日期,我获得不正确的年份。日期未正确格式化为Java
这里是我的代码:
DateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("dd MMMM, yyyy");
Date date = originalFormat.parse(dob);
dob = targetFormat.format(date);
输入:27-05-1999
OUTPUT:10月19日0032
正如你可以看到输入的日期是输出日期不同。我无法理解如何做到这一点。
答
你的模式是错误的。你输入27-05-1999
,所以正确的日期格式为dd-MM-yyyy
:
String dob = "27-05-1999";
DateFormat originalFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("dd MMMM, yyyy");
Date date = originalFormat.parse(dob);
dob = targetFormat.format(date);
System.out.println(dob);
答
你输入的是:27-05-1999,你的日期格式为:YYYY-MM-DD。你实际上使用错误的日期格式。
此代码将正常工作。
String dob = "27-05-1999";
DateFormat sourceFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
DateFormat destFormat = new SimpleDateFormat("dd MMMM, yyyy", Locale.getDefault());
Date date = sourceFormat.parse(dob);
dob = destFormat.format(date);
System.out.println(dob); // output : 27 May, 1999
答
DateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("dd MM, yyyy");
Date date = originalFormat.parse("1999-05-27");
String dob = targetFormat.format(date);
System.out.println(dob);
看你输入了错误的格式输入格式。
如果你想保持相同的输入格式,然后用下面的代码
DateFormat originalFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("dd MM, yyyy");
Date date = originalFormat.parse("27-05-1999");
String dob = targetFormat.format(date);
System.out.println(dob);
输出两种情况下
27 05,1999
答
的下面的代码应该给你一些想法这里有什么问题,
问题是在这里表达,
//String dob = "1999-05-27";
//DateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
String dob = "27-05-1999";
DateFormat originalFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
DateFormat targetFormat = new SimpleDateFormat("dd MMMM, yyyy");
Date date = originalFormat.parse(dob);
dob = targetFormat.format(date);
System.out.println(dob);
你也可以检查出的Java文档的详细表达式的信息,下列URL应该帮你:
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
你输入模式似乎是“dd-MM-yyyy” –
我很困惑为什么你认为今年是第一个输入 –
你还没有切换到较新的Java日期和时间类呢?什么阻止你回来?我推荐他们。我甚至认为他们会给你一个异常信息,提示你的尝试有什么问题(总是一件好事)。 –