我正在尝试建立会员资格系统,并希望实施开始和结束日期。我想我已经成功实施了开始日期,但是我对到期日期(一年后)感到很困难。到期时间应存储在String
的文本字段中,因此需要对其进行转换。但是,在编译时,我会看到NullPointerException
。
center.add(createLabel("Membership Date Created"));
center.add(memDateCreatedTxtFld);
SimpleDateFormat sdf = new SimpleDateFormat ("E yyyy/MM/dd");
Date date = new Date();
memDateCreatedTxtFld.setText(sdf.format(date));
center.add(createLabel("Membership Date Expiry"));
Calendar cal = Calendar.getInstance();
Date today = cal.getTime();
cal.add(Calendar.YEAR, 1);
Date nextYear = cal.getTime();
String reportDate = sdf.format(nextYear);
memDateExpiryTxtFld.setText(reportDate);
center.add(memDateExpiryTxtFld);
例如,由于今天是2019/02/01,所以到期日期应该是2020/02/01。
答案 0 :(得分:3)
首先java.util.Date
已过时,请改用java.time.*
。
要在特定日期增加一年,可以使用:
import java.time.LocalDate;
LocalDate expirationDate = LocalDate.now().plusYears(1);
格式:
import java.time.format.DateTimeFormatter;
DateTimeFormatter formatter = new DateTimeFormatter.ofPattern("E yyyy/MM/dd");
String formattedDate = expirationDate.format(formatter)