使用日历当前日期设置对象

时间:2012-10-22 18:05:44

标签: java date object calendar

我有一个问题,即我的Vechicle对象目前没有将其日期设置为今天的任何内容。奇怪的是我的测试信息仍然是这样的。所有其他功能都适用于日历。

Date Sold: Thu Jan 01 00:00:00 GMT 1970

主类

public void buyVechicle(String Vin){
    Vechicle V = findVechicle(Vin);
    if (V.getHasBeenSold() == true){
        System.out.print("This car has already been sold");
    }
    else{
        V.setHasBeenSold();
        V.setDateSold();
    }
}

Vechicle Class

public Calendar setDateSold(){
    Calendar cal = Calendar.getInstance();
    return cal;
}

3 个答案:

答案 0 :(得分:0)

public void setDateSold(){
    Calendar cal = Calendar.getInstance();
    this.dateSold = cal;
}

您必须在班级中设置/分配值。

答案 1 :(得分:0)

尝试

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
Calendar cal = Calendar.getInstance(); 
this.soldDate= dateFormat.format(cal.getTime());
 return cal;

这使您可以管理输出dateformat aswel

更新

另外,您没有设置调用对象的状态。在你的setter方法中 设置

   this.soldDate= dateFormat.format(cal.getTime());

这将使用对象保存销售日期,您可以在需要时使用它。

答案 2 :(得分:0)

您的set方法不会在Vehicle类中设置任何字段,因此其他方法将找不到您刚设置的日期。将其更改为:

public Calendar setDateSold(){
    Calendar cal = Calendar.getInstance();
    this.dateSold = cal;
    return cal;
}

Java-bean setter通常有一个value参数,通常不会返回值,所以这更加惯用:

public void setDateSold(Calendar calendar){
    this.dateSold = calendar;
}

为了避免混淆用于Java bean样式setter的其他Java程序员,你可以重命名你的方法:

public Calendar sold(){
    this.dateSold = Calendar.getInstance();
    return this.dateSold;
}

来电者向车辆发送一条有效说“你已被售出”的信息。

或者,更好的是,有几种方法可以将行为分开:

private Calendar today() {
    return Calendar.getInstance();
}

public void sold(){
    setDateSold(today());
}

public Calendar getDateSold() {
    return this.dateSold;
}

private void setDateSold(Calendar calendar) {
    this.dateSold = calendar;
}