了解如何将 SimpleDateFormat 与其他参数一起使用

Understanding how to use SimpleDateFormat with other parameters

我试图理解格式化日期并将其添加为我的对象的参数的逻辑,但发现这很困难。我正在尝试使用 SimpleDateFormat..

myClassroom.addEnrolment(new Classroom("502","424"));
myClassroom.addEnrolment(new Classroom("503","425"));
myClassroom.addEnrolment(new Classroom("504","426"));   

但努力实现接受

myClassroom.addEnrolment(new Classroom("502","424", "2020-05-12"));
myClassroom.addEnrolment(new Classroom("503","425", "2020-04-22"));
myClassroom.addEnrolment(new Classroom("504","426", "2020-05-05"));

我都导入了..

import java.text.SimpleDateFormat;
import java.util.Date;

并在课堂 class 中添加为 parameters/initialized。我从这里去哪里?感谢任何帮助我似乎找不到此信息

编辑教室的属性:

import java.util.Date;

public class Classroom{      
     private String studID;
     private String subjectID;
     private Date dateEnroled;

     public Classroom(String studID, String subjectID, Date dateEnroled)
     {  
        this.studID = studID; 
        this.courseID = subjectID;
        this.dateEnroled = dateEnroled;
     }

您需要一个接受字符串的构造函数,如下所示:

public Classroom(String studID, String subjectID, String dateEnroled)
{  
    this.studID = studID; 
    this.courseID = subjectID;
    this.dateEnroled = new java.text.SimpleDateFormat("yyyy-MM-dd")
                       .parse(dateEnroled);
}

正如我在评论中提到的,不要使用过时的 DateSimpleDateFormat。使用 LocalDate and DateTimeFormatter instead. Check this 了解更多详情。

按如下操作:

import java.time.LocalDate;

class Classroom {
    private String studID;
    private String subjectID;
    private LocalDate dateEnroled;

    public Classroom(String studID, String subjectID, LocalDate dateEnroled) {
        this.studID = studID;
        this.subjectID = subjectID;
        this.dateEnroled = dateEnroled;
    }
    // Getters, setters, hashCode, equals and toString
}

public class Main {
    public static void main(String[] args) {
        myClassroom.addEnrolment(new Classroom("502","424", LocalDate.parse("2020-05-12"));
    }
}