Java 准备报表中的时间问题->;MySql

Java 准备报表中的时间问题->;MySql,java,Java,当我在准备好的语句中使用下面的代码时 Date totalDate = visit.getTotalTime(); Date visitDate = visit.getVisitTime(); java.sql.Time sqlTotalTime = new java.sql.Time(totalDate.getTime() - visitDate.getTime()); ps.setTime(4, sqlTotalTime); 我使用这些值 08/Dec/2010:07:27:54 08

当我在准备好的语句中使用下面的代码时

Date totalDate = visit.getTotalTime();
Date visitDate = visit.getVisitTime();

java.sql.Time sqlTotalTime = new java.sql.Time(totalDate.getTime() - visitDate.getTime()); 
ps.setTime(4, sqlTotalTime);
我使用这些值

08/Dec/2010:07:27:54
08/Dec/2010:07:27:52
我希望是00:00:02,但我得到了01:00:02


任何人都知道为什么…

问题是你试图把一个持续时间变成一个时间。两个不同的概念。当您创建一个时间实例时,它将绑定到您的时区。如果我在东海岸,我的时间是当地时间19:00:02,但格林威治标准时间00:00:02。如果你在寻找一个真实的时间,那么你必须加上或减去totalDate和visitDate之间的差值,以获得你想要的时间值。

问题是你试图将持续时间变成一个时间。两个不同的概念。当您创建一个时间实例时,它将绑定到您的时区。如果我在东海岸,我的时间是当地时间19:00:02,但格林威治标准时间00:00:02。如果你在寻找真实时间,那么你必须加上或减去totalDate和visitDate之间的差值,以获得你想要的时间值。

你确定这是visit中的值吗?也许在构造器的主体中,你们做了一些增加这一小时的事情?我们可以有更多的代码吗?10.120.10.101--[08/Dec/2010:07:27:52 1000]“GET/ELO/css/images/background-shadow.gif HTTP/1.1”304-10.120.10.101--[08/Dec/2010:07:27:54 1000]“GET/ELO/qnx/leftHighlight.gif HTTP/1.1”304-这是我创建访问的日志中的内容。当我使用这些方法时,我解析这些东西并获取上面的数据。我看到的区别在于MySql。。。。在Java中,当我测试时没有问题,我得到2秒?!这与从Java到MySQL的转换有关,然后尝试同样的方法,但改用sql.Date。让我们看看是否会有问题。或者可能与时区有关?添加更多代码,最好构建一个演示问题的模型。您确定visit中的值是多少?也许在构造器的主体中,你们做了一些增加这一小时的事情?我们可以有更多的代码吗?10.120.10.101--[08/Dec/2010:07:27:52 1000]“GET/ELO/css/images/background-shadow.gif HTTP/1.1”304-10.120.10.101--[08/Dec/2010:07:27:54 1000]“GET/ELO/qnx/leftHighlight.gif HTTP/1.1”304-这是我创建访问的日志中的内容。当我使用这些方法时,我解析这些东西并获取上面的数据。我看到的区别在于MySql。。。。在Java中,当我测试时没有问题,我得到2秒?!这与从Java到MySQL的转换有关,然后尝试同样的方法,但改用sql.Date。让我们看看是否会有问题。或者可能与时区有关?添加更多代码,最好构建一个解决问题的模型。