0

我知道这可能是一个简单/重复的问题,但不知何故我无法计算它

您好,我正在获取今天的推特提要及其推文时间,并且必须根据要显示的位置计算它们之间的小时差。这是一个示例日期Sun Jul 21 21:14:40 +0000 2013,我需要计算与当前时间的小时差。

4

1 回答 1

1

因此,首先要做的是将该字符串解析为日期:

Date postDate = new java.text.SimpleDateFormat("E MMM d HH:mm:ss Z yyyy")
                                 .parse("Sun Jul 21 21:14:40 +0000 2013");

现在,您可以获得发布日期和当前日期之间的差异(以毫秒为单位):

long diffMSec = new Date().getTime() - postDate.getTime();

最后,您可以将毫秒转换为小时或任何其他时间单位:

int diffHours = diffMSec / (1000*60*60); 

请注意,日期仅在表示为字符串时才具有时区 - 在内部,它们存储为自 UTC 1980 年 1 月 1 日午夜以来的毫秒数。因此,将字符串解析为日期(使用时区)并计算两个日期之间的差异会为您处理时区差异。

于 2013-07-22T01:24:06.890 回答