我正在进行一项任务,我们使用自己的属性和方法(Constructor,Getter和Setter)创建自己的类,对于一个类,我需要一些使用日期的属性,例如: dateOfIssue或dateOfPayment。我正在尝试使用新的LocalDate数据类型,但是当我从CheckingAccount实例化一个对象并尝试设置日期时,我不知道将它放入什么格式。我尝试了3个整数,例如05,06,2010以不同的顺序,但它表示预期。
有人可以帮忙吗?
import java.time.*;
import java.math.BigDecimal;
final public class CheckingAccount extends BankAccount {
//Attributes
private int checkingBookNo;
private BigDecimal amountLastCheck;
private LocalDate dateOfIssue;
public CheckingAccount(){
checkingBookNo = 0;
dateOfIssue = null;
}
public void setDateOfIssue ( LocalDate dateOfIssueIn )
{
dateOfIssue = dateOfIssueIn;
}
}
答案 0 :(得分:1)
Java 8取代java.util.Date
,而是提供了一个大大改进的新Date and Time API。如果禁止使用Java 8,但允许使用第三方库,则JodaTime是一个很好的选择。该库是新Java 8 Date和Time API的基础,可以与早期版本的Java一起使用。
如果使用Java 8 java.time package,属性应为LocalDate
类型(或LocalDateTime
是需要的时间部分)。 Setter和getter应该分别接受和返回相同类型的对象。
以下是一些如何创建日期实例的示例:
// the current date
LocalDate currentDate = LocalDate.now();
// 2015-02-11
LocalDate tenthFeb2014 = LocalDate.of(2015, Month.FEBRUARY, 11);
答案 1 :(得分:0)
你有点误解了SimpleDateFormat
的含义。
此字段的类型Date
不应为SimpleDateFormat
类型。
private SimpleDateFormat dateOfIssue;
其setter参数也是如此。一个SimpleDateFormat
对象
不是日期,它是允许您解析/格式化的东西
Date
来自/ String
s。这就是问题的根本原因。