首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用日期

使用日期
EN

Stack Overflow用户
提问于 2011-05-18 15:19:14
回答 1查看 478关注 0票数 0

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

代码语言:javascript
运行
复制
Date totalDate = visit.getTotalTime(); 
Date visitDate = visit.getVisitTime(); 
java.sql.Time sqlTotalTime = new java.sql.Time(totalDate.getTime() - visitDate.getTime()); 
ps.setTime(4, sqlTotalTime); 

给出1小时2秒的差值,而不是2秒:

代码语言:javascript
运行
复制
08/Dec/2010:07:27:54 
08/Dec/2010:07:27:52 

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-18 15:28:56

你没有解释你是如何准确地减去这两个日期的,或者你认为什么是“通常的问题”。

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

代码语言:javascript
运行
复制
long differenceInMilliseconds = date1.getTime() - date2.getTime();

当然,如果您想要以秒、分钟、小时等为单位的差值,则将此值除以适当的因子。

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

编辑(在编辑之后)看起来您正在尝试将时间差存储在TIMESTAMP或类似类型的列中。不要这样做;时间戳等是针对时间值的,而不是针对时间差值的。只需将时间差存储在数字列中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6041179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档