我想问一下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对象?
答案 0 :(得分:4)
是的,扩展Date
添加格式字段并覆盖toString
方法,类似于
public class DateWithFormat extends Date {
String format; // Assign as appropriate
public String toString() {
return new SimpleDateFormat(format).format(this));
}
}
答案 1 :(得分: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"