Java中使用SimpleDataFormat的日期
以下代码尝试用给定格式解析日期Java中使用SimpleDataFormat的日期,java,validation,date,simpledateformat,Java,Validation,Date,Simpledateformat,以下代码尝试用给定格式解析日期2013年2月31日13:02:23 DateFormat dateFormat=new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss"); System.out.println(dateFormat.parse("31-Feb-2013 13:02:23")); 它返回Sun Mar 03 13:02:23 IST 2013 我需要使指示无效日期的日期无效。这个(等等)日期不应该被解析(或者应该以任何其他方式无效)。这可能吗?使用
2013年2月31日13:02:23
DateFormat dateFormat=new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
System.out.println(dateFormat.parse("31-Feb-2013 13:02:23"));
它返回Sun Mar 03 13:02:23 IST 2013
我需要使指示无效日期的日期无效。这个(等等)日期不应该被解析(或者应该以任何其他方式无效)。这可能吗?使用带有false
参数的方法:
DateFormat dateFormat=new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss");
dateFormat.setLenient(false);
System.out.println(dateFormat.parse("31-Feb-2013 13:02:23"));
Java的日期计算是宽松的。通过宽松的解析,解析器可以使用启发式来解释与该对象格式不完全匹配的输入
DateFormat dateFormat=new SimpleDateFormat("...");
dateFormat.setLenient(false); // turn on Strict mode
dateFormat.parse("31-Feb-2013 13:02:23");// throws java.text.ParseException
您必须将false传递给LENCENT to dateformat,该dateformat将强制转换为严格模式。通过严格解析,输入必须与此对象的格式匹配
DateFormat dateFormat=new SimpleDateFormat("...");
dateFormat.setLenient(false); // turn on Strict mode
dateFormat.parse("31-Feb-2013 13:02:23");// throws java.text.ParseException
由于两个答案都很好,我接受了最老的一个。请不要介意。