如何在Java中设置结束日期?

时间:2019-02-01 22:02:37

标签: java date calendar textfield

我正在尝试建立会员资格系统,并希望实施开始和结束日期。我想我已经成功实施了开始日期,但是我对到期日期(一年后)感到很困难。到期时间应存储在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。

1 个答案:

答案 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)