【发布时间】:2014-05-19 14:41:48
【问题描述】:
我有两个日期字符串,我想知道它们之间相差多少秒。
2014-05-19 16:37:36:690 // formattedDate
2014-05-19 19:38:00:000 // expString
我使用以下代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss:SSS");
Date d1 = null;
Date d2 = null;
d1 = sdf.parse(expString);
d2 = sdf.parse(formattedDate);
long diff = d1.getTime() - d2.getTime();
long exp = diff / 1000 % 60;
在此特定示例中,exp 是 23。这里有什么问题?
【问题讨论】:
-
anything % 60将始终在0和59之间给出答案。你期待看到什么? -
更新后的结果是什么?因为这显然是您的问题的原因
-
您期待什么答案?如果您查看要减去的日期(mod 60),您会得到
60 - 36.69 = 23.31,当您将其转换为长整数时,它会四舍五入为23。 -
如果你不修改 60,你会得到
10823秒,即 3 小时 23 秒,这是这些日期之间的实际差异。
标签: java parsing date date-format