Date date1= new java.util.Date();
java.sql.Date Sqldob = new java.sql.Date(date1.getTime());
System.out.println("date" +Sqldob);
Time Sqldob1 = new Time(date1.getTime());
System.out.println("User Time: " +Sqldob1);
String yourTime="09:30:00";
SimpleDateFormat ra = new SimpleDateFormat("HH:mm:ss");
Date yourDate = ra.parse(yourTime);
Time sqlTime3 = new Time(yourDate.getTime());
System.out.println("your time"+sqlTime3);
if(Sqldob1.before(sqlTime3)){
Sqldob1 = sqlTime3;
System.out.println("inside loop");
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我将两个时间变量进行比较以获得相等性,但它为所有类型的输入提供了相同的值-1
Sud*_*hul 10
您需要使用Date#before(Date),Date#after(Date)和Date#equals(Date)方法进行基本日期比较.
例如:
Date d1 = new Date();
Date d2 = new Date();
if(d1.after(d2)){
// Do something
}
if(d1.before(d2)){
// Do something
}
if(d1.equals(d2)){
// Do something
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用Date#compareTo(Date)方法,但是,您需要相应地解释compareTo方法的输出.
正如文档所说:
如果参数Date等于此Date,则值为0; 如果此Date在Date参数之前,则小于0的值; 如果此Date位于Date参数之后,则值大于0.
在你的情况下,你是-1因为
new SimpleDateFormat("HHH:mm:ss");是错的.应该是新的SimpleDateFormat("HH:mm:ss");
int compare= sqlTime3.compareTo(Sqldob1);这个sqlTime3只有时间.日期是你没有提到的是,时代的日期,因此,它始终将是之前new Date()这是今天.
您的解决方案: -(希望这能解决您的问题)
java.util.Date date1= new java.util.Date();
Time Sqldob1 = new Time(date1.getTime());
System.out.println("User Time: " +Sqldob1);
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 19); // Your hour
cal.set(Calendar.MINUTE, 30); // Your Mintue
cal.set(Calendar.SECOND, 00); // Your second
Time sqlTime3 = new Time(cal.getTime().getTime());
System.out.println("your time: "+sqlTime3);
if(Sqldob1.before(sqlTime3)){
Sqldob1 = sqlTime3;
System.out.println("inside loop");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25896 次 |
| 最近记录: |