我有一个奇怪的问题。我有这个方法,它应该根据目录名称生成一个日期。
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年”
对于字符串名称 = "18-06-12": "Mon Jan 02 00:00:00 CET 2012"
为什么?
后来我将它们与compareTo(Date xy)进行比较,它返回0,所以它必须是相同的......
最佳答案
您的格式也不正确,应该是 dd-MM-yy
(对于 12 年 6 月 17 日),要追踪问题,请使用 printStackTrace() 检查 catch block
还有
SimpleDateFormat
从 String 解析日期,结果 Date 将调用具有固定格式的 toString()
因此,如果您想再次打印格式化日期,则需要使用 simpleDateFormat.format(dateInstance)
Date
类没有任何属性来保存要在 toString()
中打印的格式
关于java - SimpleDateFormat 始终返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193484/