Java 分析webapp中的日期时出错
我在我的web应用程序中使用以下功能来比较两个日期相等或之后或之前Java 分析webapp中的日期时出错,java,date,jodatime,Java,Date,Jodatime,我在我的web应用程序中使用以下功能来比较两个日期相等或之后或之前 public class DateComareClass{ public static void main(String args[]) throws ParseException, IOException { DateTimeComparator dateTimeComparator=DateTimeComparator.getDateOnlyInstance(); Calendar
public class DateComareClass{
public static void main(String args[]) throws ParseException, IOException {
DateTimeComparator dateTimeComparator=DateTimeComparator.getDateOnlyInstance();
Calendar cal = Calendar.getInstance();
DateFormat dftreg = new SimpleDateFormat("yyyy-MM-dd");
Date currentDate = new Date(cal.getTime().getTime());
Date SignUpDateCheck = (Date) dftreg.parse("2018-07-05");
System.out.println(SignUpDateCheck + " is the SignUpDateCheck ");
System.out.println(currentDate + " is the currentDate ");
int retval=dateTimeComparator.compare(currentDate,SignUpDateCheck);
System.out.println(retval);
SignUpDateCheck = (Date) dftreg.parse("2018-07-13");
System.out.println(SignUpDateCheck + " is the SignUpDateCheck ");
System.out.println(currentDate + " is the currentDate ");
retval=dateTimeComparator.compare(currentDate,SignUpDateCheck);
System.out.println(retval);
}
}
它打印
Thu Jul 05 00:00:00 2018 is the SignUpDateCheck
Thu Jul 12 12:03:39 2018 is the currentDate
1
Fri Jul 13 00:00:00 2018 is the SignUpDateCheck
Thu Jul 12 12:03:39 2018 is the currentDate
-1
但是,如果我在我的webapp中使用相同的逻辑,它似乎总是将retval打印为-1,无论它是在日期之后、之前还是等于日期
webapp中的我的代码片段
String GenerateSignupDate=year+"-"+month+"-"+day;
SignUpDateCheck= (Date) dftreg.parse(GenerateSignupDate);
System.out.println(SignUpDateCheck + " is the SignUpDateCheck ");
System.out.println(currentDateReg + " is the currentDateReg ");
//System.out.println(SignUpDateCheck.before(currentDateReg) + " is the answer ");
retval=dateTimeComparator.compare(currentDate,SignUpDateCheck);
System.out.println(retval + " is the retval ");
但是注册时,当前日期打印正确。它只会错误地打印返回值
非常感谢您的帮助。您能在您的Web应用程序中显示
System.out.println
调用的结果吗?您尝试过使用调试器单步执行吗?另外,请复制/粘贴webapp代码段,而不是在中键入它。。。似乎在未声明SignUpDateCheck=(Date)dftreg…
之前缺少Date
。MCVE(感谢您这么做)和您声称在webapp中运行的内容之间有足够的差异,我们无法确定发生了什么。请发布webApp中完整的实际代码,以及您获得的实际输出,并将注释的println
取消注释。在获取您的“web app”片段并通过修复错误和提供缺少的声明使其可执行后,我无法重现该行为。很明显,你的webapp中存在一些不同之处,它与你发布的[MCVE]不匹配。因为你已经在使用Joda Time,我认为该库旨在取代旧的、设计拙劣的类Date
、Calendar
和(至少部分地)SimpleDataFormat
,我想知道为什么您也在使用那些旧类?当然,第三个选择是继续,因为Joda Time现在处于维护模式。