问题
I would like to ask about the usage of java.util.Date. Here is my sample class
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);
}
}
My output is
Formatted Date String (String datatype): 06/10/2013
Parse Date (Date datatype): Sun Oct 06 00:00:00 MMT 2013
But I would like to get the following output
Formatted Date String (String datatype): 06/10/2013
Parse Date (Date datatype): 06/10/2013
Is it possible to get Date object with specific format?
回答1:
Is it possible to get Date object with specific format?
No. Date doesn't have any format. It represents the number of milliseconds since epoch. You only get the formatted string using SimpleDateFormat, which you already did.
Printing Date invokes the overridden Date#toString() method, which uses a default format, in which every Date is printed.
Here's how Date#toString() source looks like:
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
}
So the format used is "EEE MMM dd HH:mm:ss zzz yyyy"
回答2:
Yes, extend Date adding the format field and override toString method, something along the lines of
public class DateWithFormat extends Date {
String format; // Assign as appropriate
public String toString() {
return new SimpleDateFormat(format).format(this));
}
}
来源:https://stackoverflow.com/questions/19207477/is-it-possible-to-get-java-util-date-object-with-specific-format