Java中的日期(字符串)分析错误
我使用以下代码行将Java中的日期(字符串)分析错误,java,datetime,date-parsing,Java,Datetime,Date Parsing,我使用以下代码行将字符串解析为日期: String displayBirthday; ... java.util.Date ss1=new Date(displayBirthday); SimpleDateFormat formatter5=new SimpleDateFormat("yyyy-MM-dd"); displayBirthday = formatter5.format(ss1); li.add(displayBirthday); 对于许多日期,它都可以正常工作,但是当我想解析一
字符串
解析为日期
:
String displayBirthday;
...
java.util.Date ss1=new Date(displayBirthday);
SimpleDateFormat formatter5=new SimpleDateFormat("yyyy-MM-dd");
displayBirthday = formatter5.format(ss1);
li.add(displayBirthday);
对于许多日期,它都可以正常工作,但是当我想解析一个日期时,比如:0001-03-10
它给了我以下错误:
java.lang.IllegalArgumentException: Parse error: 0001-03-10
我使用前缀0001表示没有年份的日期作为内部表示。如何克服这个问题 Date(java.lang.String)”已被弃用
,只需使用SimpleDataFormat
如下
SimpleDateFormat formatter5=new SimpleDateFormat("yyyy-MM-dd");
String displayBirthday = formatter5.format(formatter5.parse("0001-03-10"));
System.out.println(displayBirthday);
输出:
0001-03-10
如果这是唯一的情况,添加If条件会有帮助吗?什么是
displaybearth
?是字符串如果是,则不要使用Date类的已弃用构造函数。它是字符串。我本可以使用if-else条件,但我得到的日期类型是不可预测的。通过各种API返回的各种格式是不同的。请在发布时花更多的精力格式化您的代码-您已经问了足够多的问题,您现在应该真正知道如何格式化代码,并且不需要很长时间就可以让每个人都能更好地阅读该问题。为什么要使用不推荐的Date(String)
constructor?为什么不使用simpleDataFormat
来解析它?如果您收到多种格式,您可以尝试使用多个SimpleDataFormat
。listjava.text.ParseException解析错误:不可解析日期:“1990年8月24日”(偏移量为0),您无法通过1990年8月24日“
使用此SimpleDataFormat
,您需要新的格式。如何检测日期的模式,以便将其传递给不同的解析器?