是否可以获取具有特定格式的java.util.Date对象?

我想问一下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对象?

是否可以使用特定格式获取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"

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

 public class DateWithFormat extends Date { String format; // Assign as appropriate public String toString() { return new SimpleDateFormat(format).format(this)); } }