java,d1.before(d3)==true,明明两个时间是一样的,d1不在d3之前,可是却执行了这个判断下面的语句??

源代码如下:importjava.util.Date;publicclassNowDate{publicstaticvoidmain(Stringargs[]){Date... 源代码如下:
import java.util.Date;
public class NowDate{
public static void main(String args[]){
Date d1=new Date();
System.out.println("————————d1的时间是:"+d1);
//Date d2=new Date(115,4,4);
//System.out.println("当前时间是:"+d1+"\n "+d2);
Date d3=new Date();
System.out.println("————————d3的时间是:"+d3);
if(d1.after(d3)==true){
System.out.println("d1在d3之后!!!!");
}else if(d1.before(d3)==true){
System.out.println("d1在d3之前!!!!");
System.out.println("————————d1的时间是:"+d1);
System.out.println("————————d3的时间是:"+d3);
}
else{
System.out.println("d1和d3一样!!!!");
try {
Thread.sleep (2000) ;
} catch (InterruptedException ie){}
System.out.println("————————d1的时间是:"+d1);
Date d4=new Date();
System.out.println("————————d4的时间是:"+d4);
if(d1.after(d4)==true){
System.out.println("d1在d4之后!!!!");
}else
System.out.println("d1在d4之前!!!!");
}
}
}
展开
 我来答
yj83855039
推荐于2016-05-25 · TA获得超过590个赞
知道小有建树答主
回答量:985
采纳率:33%
帮助的人:494万
展开全部
加个断点,调试,你会看到d1,d3的fastTime参数是不一样的,这个参数应该是精确地时间数值
d1 1430725598890
d3 1430725600843
其实你的这两个date之间还是有微小差异的,只是程序运行太快,导致打印出的是相同的东西,但是精确地还是有差异的
追问
你可以把那个true改成false试试,看是不是还是打印出同一个结果
追答
不会啊,改成false就一直往一样里面跳了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式