0

我想获取当前日期并将其格式化并将其保存到日期对象中。我尝试以下代码,但收到一条错误消息,指出日期不可解析。这是我尝试过的:

SimpleDateFormat f = new SimpleDateFormat("d/M/yyyy");
Date date = f.parse(new Date().toString());

我需要将实际日期保留为日期对象,因为稍后其他一些代码将需要它

4

3 回答 3

2

使用您定义的格式时,您需要将String值传递给parse遵循该模式且new Date().toString()绝对不遵循该dd/MM/yyyy模式的方法。

此外,new Date()已经是一个Date对象,您不需要将其转换为 aString并返回 a Date

于 2013-04-10T14:42:41.893 回答
1

根据Date类的Javadoc,默认toString()方法总是返回格式

dow mon dd hh:mm:ss zzz yyyy

这不是您在解析器中定义的那个。

于 2013-04-10T14:44:19.880 回答
0

我需要将实际日期保留为日期对象

似乎您只想要new Date()对象的日期部分而不是时间部分。知道了这一点,你有两条路可以走:

  1. 使用纯 Java。您将需要一个日历对象:

    public Date getCurrentDate() {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.HOUR, 0);
        c.set(Calendar.MINUTES, 0);
        c.set(Calendar.SECONDS, 0);
        c.set(Calendar.MILLISECONDS, 0);
        return c.getTime();
    }
    
  2. 使用像Joda Time这样可以轻松处理日期和时间的外部库:

    public Date getCurrentDate() {
        return new LocalDate().toDate();
    }
    
于 2013-04-10T14:52:47.553 回答