如何格式化当前日期并保存到日期对象中

问题描述:

我想获取当前日期并格式化并将其保存到日期对象中。我尝试下面的代码,但得到一个错误,说日期是不可解析的。这是我曾尝试:如何格式化当前日期并保存到日期对象中

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

我需要的实际日期继续作为一个日期对象,将需要一些其他的代码上

+4

'新的Date()'已经表示当前日期。你想做什么 ? – 2013-04-10 14:42:02

+0

至少试着打印'new Date()。toString()'以查看当前的输出格式并了解代码可能失败的原因。另外,你的代码示例根本没有意义(从一个新的Date创建一个新的Date)。 – 2013-04-10 14:44:09

+0

'Date'没有格式:它只是一个时间点,有它自己的内部表示。你可以用特定格式的字符串*表示一个Date。 – 2013-04-10 14:45:40

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

另外,new Date()已经是Date对象,您不需要将其转换为String并返回Date

按照Date class' Javadoc默认toString()方法总是返回格式

道琼斯指数周一DD HH:MM:SS ZZZ YYYY

这是不是你的解析器定义一个。

我需要的实际日期继续作为一个日期对象

好像你只想要日期部分,而不是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(); 
    }