public class Date {
String date ;
// 包含一个通过字符串构造的日期函数Date(String date)
public Date(String date) {
if (isValidDate(date)) {
this.date = date;
}
}
public static boolean isValidDate(String date) {
boolean convertSuccess = true;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
format.setLenient(false);
format.parse(date); //按指定格式格式化传进来的date,这里我想也格式化属性date怎么写呢?
} catch (ParseException e) {
convertSuccess = false;
}
return convertSuccess;
}
public String toString(){
return date;
}
}
//调用
String mydate = input.next();
if (Date.isValidDate(mydate)) {
Date date = new Date(mydate);
diary.setDate(date); //就是想让date对象的属性date也格式化,前面怎么写呢?
没必要,写在toString里面就可以了。
this.date=new SimpleDataFormat("yyyy-MM-dd").parse(date);
这样?
如果符合isValidDate,代表属性值已经符合yyyy-MM-dd的格式了。
如果构造参数不符合yyyy-MM-dd的格式,并且想要属性值也是yyyy-MM-dd的格式,
则要根据构造参数的格式先parse得到Date对象,在对Date对象进行format得到yyyy-MM-dd的格式的属性值