我有一个奇怪的问题。我有这个方法,它应该从目录名称生成一个日期。
private Date getSubfolderDate(File file) {
String name = file.getName();
SimpleDateFormat parser = new SimpleDateFormat("dd-MM-YY");
Date date;
try {
date = parser.parse(name);
} catch (ParseException e) {
return null;
}
return date;
}
返回String name =“17-06-12”:“Mon Jan 02 00:00:00 CET 2012"
和String name =“18-06-12”:“Mon Jan 02 00:00:00 CET 2012”
为什么?
后来我将它们与compareTo(日期xy)进行比较,它返回0,所以它必须是相同的......
答案 0 :(得分:3)
您的格式也不正确它应该是dd-MM-yy
(对于17-06-12),要跟踪问题,请使用printStackTrace()
同时强>
SimpleDateFormat
从String解析日期,结果Date将调用具有固定格式的toString()
因此,如果您希望再次打印格式化日期,则需要使用simpleDateFormat.format(dateInstance)
Date
类没有任何包含要在toString()
答案 1 :(得分:3)
我试过这段代码:
static Date getSubfolderDate(File file) {
String name = file.getName();
SimpleDateFormat parser = new SimpleDateFormat("dd-MM-yy");
Date date;
try {
date = parser.parse(name);
} catch (ParseException e) {
return null;
}
return date;
}
public static void main(String[] args) {
System.out.println(getSubfolderDate(new File("17-06-12")));
System.out.println(getSubfolderDate(new File("18-06-12")));
}
打印
Sun Jun 17 00:00:00 CEST 2012
Mon Jun 18 00:00:00 CEST 2012