使用日期



我互相减去两个日期,因为我需要它们之间的时差。 我切换了常见的问题,但是当我将其写入MySQL(时间)时,我发现总是有1小时的差异太大。 如果我期望 2 分钟的差异,我会得到 1 小时 2 分钟。 现在我认为这是一个时区问题,但有没有办法解决这个问题......?

Date totalDate = visit.getTotalTime(); 
Date visitDate = visit.getVisitTime(); 
java.sql.Time sqlTotalTime = new java.sql.Time(totalDate.getTime() - visitDate.getTime()); 
ps.setTime(4, sqlTotalTime); 

给出 1h 2 秒而不是 2 秒的差异:

08/Dec/2010:07:27:54 
08/Dec/2010:07:27:52 

谢谢。

你没有解释你是如何减去这两个日期的,或者根据你的说法,"通常的问题"是什么。

要获取两个日期之间的时差,您可以对这两个日期调用 getTime() 以获取自 01-01-1970 00:00:00 GMT 以来的毫秒数,然后减去这两个值:

long differenceInMilliseconds = date1.getTime() - date2.getTime();

当然,如果您想要以秒、分钟、小时等为单位的差异,请将该值除以适当的系数。

请注意,java.util.Date对象本身并不保存有关时区的任何信息。

编辑

编辑后)看起来您正在尝试将时间差存储在 TIMESTAMP 或类似类型的列中。别这样;时间戳等用于时间值,而不是时间值。只需将时差存储在数字列中即可。

相关内容

  • 没有找到相关文章

最新更新