2

想请教一下java.util.Date的用法。这是我的示例类

         public class DateConverter {
           public static void main(String[] args) {
                  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
                  Date today = new Date();
                  String dateAsString_format = simpleDateFormat.format(today);
                  System.out.println("Formatted Date String (String datatype): " + dateAsString_format);
                  Date parsedDate = null;
                  try {
                      parsedDate = simpleDateFormat.parse(dateAsString_format);
                  } catch (ParseException e) {
                      e.printStackTrace();
                  }
                  System.out.println("Parse Date (Date datatype): " + parsedDate);
               }
            }

我的输出是

         Formatted Date String (String datatype): 06/10/2013
         Parse Date (Date datatype): Sun Oct 06 00:00:00 MMT 2013

但我想得到以下输出

         Formatted Date String (String datatype): 06/10/2013
         Parse Date (Date datatype): 06/10/2013

是否可以获得具有特定格式的 Date 对象?

4

2 回答 2

4

是的,扩展Date添加格式字段和覆盖toString方法,类似于

public class DateWithFormat extends Date {
   String format; // Assign as appropriate
   public String toString() {
     return new SimpleDateFormat(format).format(this));
   } 
}
于 2013-10-06T10:43:24.817 回答
3

是否可以获得具有特定格式的 Date 对象?

Date。没有任何格式。它表示自纪元以来的毫秒数。您只能使用SimpleDateFormat您已经做过的格式化字符串。

打印Date调用重写的Date#toString()方法,该方法使用默认格式,其中每个都Date被打印。

以下是Date#toString()源代码的样子:

public String toString() {
    // "EEE MMM dd HH:mm:ss zzz yyyy";
    BaseCalendar.Date date = normalize();
    StringBuilder sb = new StringBuilder(28);
    int index = date.getDayOfWeek();
    if (index == gcal.SUNDAY) {
        index = 8;
    }
    ....  // some more code
}

所以使用的格式是"EEE MMM dd HH:mm:ss zzz yyyy"

于 2013-10-06T09:49:44.183 回答