java - SimpleDateFormat 始终返回相同的结果

标签 java date simpledateformat

我有一个奇怪的问题。我有这个方法,它应该根据目录名称生成一个日期。

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/

相关文章:

java - 调用方法 ".class expected"

javascript - 无法将本地化的 moment.js 字符串转换为 unix 时间或任何格式

java - 如何通过数学计算显示 future 的日期和时间?

java - 无法使用 SimpleDateFormat 解析 AM/PM

java - 不同技术之间的两阶段提交(COM+、Java)

java - 主题备用名称必须具有在 java 中工作的方案?

java - 如何将秒添加到字符串时间戳(yyyy-mm-ddTH :i:s+tz) in java

java - "EEEE, MMMM d, yyyy ' 在 ' HH:mm"

java - 我缺少哪些 Hibernate 注释?

python - 如何使用 `` xlrd.xldate_as_tuple( )``