我正在尝试比较java中的两个日期。虽然以下代码工作正常,但我想处理输入日期的日期格式可能发生一些变化的情况。
例如,在下面的代码中,两个日期的日期格式为 yyyy/mm/dd hh:mm:ss am。但有时在输入日期中发现一些额外的空格/换行符,这会导致异常。
java.text.ParseException: Unparseable date: "02/14/2013
07:00:00 AM"
以下是我尝试执行的代码。
try
{
Date date1 = (Date)DATE_FORMAT_yyyy_mm_dd_hh_mm_ss.parse(slaTime); // usually the data comes as 2013/02/03 09:09:09 AM
Date date2 = (Date)DATE_FORMAT_yyyy_mm_dd_hh_mm_ss.parse(actualTime);// usually the data comes as 2013/02/03 09:06:09 AM
// a error occurs
if(date1.before(date2))
{
return "True";
}
else
{
return "False";
}
}
catch (ParseException e)
{
e.printStackTrace();
}
如何处理这个问题?
最佳答案
最简单的解决方案之一是 strip all whitespace from the String解析日期之前的版本。更改日期格式以不包含任何空格 (yyyy/MM/ddhh:mm:ssaaa),并使用它来解析剥离的字符串。
final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/ddhh:mm:ssaaa");
final String dateStr = "02/14/2013 07:00:00" +
"\n AM";
Date failingDate = dateFormat.parse(dateStr);
Date passingDate = dateFormat.parse(dateStr.replaceAll("\\s",""));
关于java - 忽略java日期比较中的任何空格或换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14998442/