Java 解析为SimpeDateFormat时出现用户输入日期错误
我正在尝试输入用户的日期。但是代码在解析方法中给出了错误。下面是我正在尝试的代码Java 解析为SimpeDateFormat时出现用户输入日期错误,java,simpledateformat,Java,Simpledateformat,我正在尝试输入用户的日期。但是代码在解析方法中给出了错误。下面是我正在尝试的代码 import java.util.*; import java.text.SimpleDateFormat; public class date_parse { public static void main(String args[]) { Scanner input=new Scanner(System.in); String s=input.nextLine();
import java.util.*;
import java.text.SimpleDateFormat;
public class date_parse {
public static void main(String args[]) {
Scanner input=new Scanner(System.in);
String s=input.nextLine();
SimpleDateFormat f= new SimpleDateFormat("dd-MM-yyyy");
System.out.println(f.parse(s));
}
}
注意-:如果我在解析方法中直接提供字符串格式的日期,如“01-01-2000”,那么代码运行良好
try{
SimpleDateFormat f= new SimpleDateFormat("dd-MM-yyyy");
System.out.println(f.parse(s));
}
catch(Exception e){
System.out.print("There is an exception");
}
首先,在Java中,你不能这样命名你的类。请通读这篇文章,以了解有关Java中命名约定的更多信息。其次,正如Risalat Zaman提到的那样,
parse
方法抛出需要在代码中处理的ParseException
。尝试按以下方式更改代码:
public class DateParse {
public static void main(String args[]) {
Scanner input=new Scanner(System.in);
String s=input.nextLine();
SimpleDateFormat f= new SimpleDateFormat("dd-MM-yyyy");
try {
System.out.println(f.parse(s));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
我在运行代码时没有发现任何错误。请提供不起作用的输入示例。您需要捕获f.parse引发的异常。什么错误?张贴stacktrace,并显示导致错误的输入。我建议您不要使用
SimpleDataFormat
。那门课是出了名的麻烦和过时。相反,使用DateTimeFormatter
和来自的其他类。这不是上帝的回答。首先帮助人们使用SImpleDateFormat
,这是一个我们不应该再使用的类,这是一个错误的做法。第二,代码是有效的(我认为),但答案没有解释原因。第三,捕获异常
是一种糟糕的风格,也无助于解释为什么要这样做。请您告诉我为什么不应该使用SimpleDataFormat。甲骨文说:其他人说:和