SimpleDateFormat API 显示错误的日期
SimpleDateFormat API displays wrong Date
尝试使用 SimpleDateFormat 格式化几个日期API
String[] dates={"18-01-2015","9-02-2015","21-03-2015"};
for(String s:dates){
SimpleDateFormat format=new SimpleDateFormat("DD-MM-yyyy");
Date date=format.parse(s);
System.out.println(date);
}
输出:
Sun Jan 18 00:00:00 IST 2015
Fri Jan 09 00:00:00 IST 2015
Wed Jan 21 00:00:00 IST 2015
您可能会注意到它显示 JAN 而不是 FEB/MAR 的所有日期。
在构建 SimpleDateFormat
时,您需要 dd
而不是 DD
。 DD
表示 "day of year",而不是 "day of month"。 每次SimpleDateFormat
看起来都在做错事,你应该查阅documentation并非常非常仔细地检查你的模式文本——尤其是大写。
(当然还有其他可能出错的地方 - 我有一个 blog post 最常见的地方。)
尝试使用 SimpleDateFormat 格式化几个日期API
String[] dates={"18-01-2015","9-02-2015","21-03-2015"};
for(String s:dates){
SimpleDateFormat format=new SimpleDateFormat("DD-MM-yyyy");
Date date=format.parse(s);
System.out.println(date);
}
输出:
Sun Jan 18 00:00:00 IST 2015
Fri Jan 09 00:00:00 IST 2015
Wed Jan 21 00:00:00 IST 2015
您可能会注意到它显示 JAN 而不是 FEB/MAR 的所有日期。
在构建 SimpleDateFormat
时,您需要 dd
而不是 DD
。 DD
表示 "day of year",而不是 "day of month"。 每次SimpleDateFormat
看起来都在做错事,你应该查阅documentation并非常非常仔细地检查你的模式文本——尤其是大写。
(当然还有其他可能出错的地方 - 我有一个 blog post 最常见的地方。)