我知道这可能是一个简单/重复的问题,但不知何故我无法计算它
您好,我正在获取今天的推特提要及其推文时间,并且必须根据要显示的位置计算它们之间的小时差。这是一个示例日期Sun Jul 21 21:14:40 +0000 2013
,我需要计算与当前时间的小时差。
因此,首先要做的是将该字符串解析为日期:
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 日午夜以来的毫秒数。因此,将字符串解析为日期(使用时区)并计算两个日期之间的差异会为您处理时区差异。