如何使用 JodaTime 获取 2 个日期之间的时间差(以毫秒为单位)
我将设计一个应用程序,在其中我需要获取两个日期之间的准确时间差。例如:
Date1:31/05/2011 12:54:00
Date2:31/05/2011 13:54:00
我尝试使用 getTime()
但没有得到确切的结果。
上述输入的预期输出为 3600000
(60 * 60 * 1000) 毫秒,但我得到 46800000
(13 * 60 * 60 * 1000)。
当我访问不同的 java 论坛时,人们建议使用 JodaTime。
我仍然无法得到确切的结果。
我工作的时区是伦敦(GMT)。
I'm going to design an application, in which I need to get the exact time difference between two dates. Ex:
Date1:31/05/2011 12:54:00
Date2:31/05/2011 13:54:00
I tried using getTime()
but I didn't get exact result.
The expected output for the above inputs is 3600000
(60 * 60 * 1000) millisec but I'm getting 46800000
(13 * 60 * 60 * 1000).
When I went through different java forums people are suggesting to use JodaTime.
Still I'm unable to get the exact result.
The timezone on I'm working is London(GMT).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
初始化两个 dateTime 并使用 period :
要获得以毫秒为单位的差异:
Init two dateTime and use Period :
To get difference in milliseconds :
查看secondsBetween( )
参数:
返回:
Check out secondsBetween( )
Parameters:
Returns:
JodaTime里面使用的是机器时间。因此,要查找毫秒,您可以使用常量存储 LocalDateTime,引用 1970 年 1 月 1 日(因为 UNIX Time< /a>)。
我这样尝试过;
结果是;
并@leonbloy写这里有一个很好的评论。
JodaTime is using machine time inside. So to find miliseconds, you can use a constant storing LocalDateTime referring to Jan 1, 1970(Because of UNIX Time).
I tried like this;
And the result is;
And @leonbloy write here a good comment.
Joda 是一个完美的库,但如果您需要 2 个日期之间的毫秒数差异,您只需计算 getTime() 之间的差异。如果你得到错误的结果,那么你就会遇到时区等问题。通常它会起作用。
Joda is a perfect library but if you need the difference between 2 dates in milliseconds you just should calculate difference between getTime(). If you get wrong results you have some problems with timezones or so. Typically it works.