我輸入的字符串轉換爲日期格式。當我嘗試給出兩個日期作爲輸入Date of Birth
和Date of Joining
,我沒有得到任何滿意的結果。如果輸入無效,也可以幫助我重新提示。提前致謝。日期有兩個日期
public class EmployeeInfo {
int id;
static String name, DoBS, DoJS;
Date DoB, DoJ;
public void checkDate(String dt) throws ParseException {
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy");
SimpleDateFormat sdf3 = new SimpleDateFormat("dd MMMM yyyy");
Date date = null;
try {
date = sdf1.parse(dt);
} catch (ParseException e) {
try {
date = sdf2.parse(dt);
} catch (ParseException e1) {
try {
date = sdf3.parse(dt);
} catch (ParseException e2) {
String invalid="Invalid,Retry";
System.out.println(invalid);
// TODO: Whatever to do when it doesn't find a date
}
}
}
setDateOfBirth(date);
setDateOfJoining(date);
}
void setDateOfBirth(Date DoB) {
this.DoB = DoB;
}
void setDateOfJoining(Date DoJ) {
this.DoJ = DoJ;
}
void print() {
System.out.println("User ID: " + id);
System.out.println("Name: " + name);
System.out.println("Date Of Birth: " + DoB);
System.out.println("Date of Joining: " + DoJ);
}
public static void main(String[] args) throws ParseException {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the name: ");
name = scanner.nextLine();
System.out.println("Enter the Date Of Birth: ");
DoBS = scanner.nextLine();
System.out.println("Enter the Date of Joining: ");
DoJS = scanner.nextLine();
EmployeeInfo e = new EmployeeInfo();
e.checkDate(DoBS);
e.checkDate(DoJS);
e.print();
}
}
你不需要內爲''try' try' –
輸入的姓名,出生日期和加入的日期。我想把這些東西打印回來。日期驗證的東西.. –
代碼將是這樣多少「冷」,如果你有使用一些方法「的TryParse」或類似的東西 – 2017-08-02 11:31:02