Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Duration为Excel提供不同的结果_Java_Excel_Duration_Localdate - Fatal编程技术网

Java Duration为Excel提供不同的结果

Java Duration为Excel提供不同的结果,java,excel,duration,localdate,Java,Excel,Duration,Localdate,有一个计算两个LocalDateTimes之间差异的方法。我用Excel计算了一些测试数据,但Java方法与我的Excel公式不符。我猜ym Excel公式是错误的,但谁能告诉我为什么 private Duration difference(LocalDateTime request, LocalDateTime response) { Duration duration = Duration.between(request, response); System.out.

有一个计算两个LocalDateTimes之间差异的方法。我用Excel计算了一些测试数据,但Java方法与我的Excel公式不符。我猜ym Excel公式是错误的,但谁能告诉我为什么

    private Duration difference(LocalDateTime request, LocalDateTime response) {
    Duration duration = Duration.between(request, response);
    System.out.println("difference: " + duration.toMillis());
    return duration;
}
我的输入数据: 请求:2018-02-12T13:43:46.456响应:2018-02-12T14:43:54.123

Excel公式结果:3608333毫秒 Java方法:3607667毫秒


我的excel公式是公认的答案

Malte Hartwig是对的


查看最后三位数字,excel公式似乎混淆了请求和响应。xxx123-xxx456应该是xxx667,而不是xxx333

运算符OP“混乱”,Excel不是。采用与所述公认答案相同的方法:

在向下复制后,第1行和第6行中显示的公式与第3、4、5和7行相同

不太麻烦,但从示例的时间元素来看,3607667的结果相同:

=(TIMEVALUE(A5)-TIMEVALUE(A4))*86400000
或者,如果要应用于上述相同单元格中的整个DateTime字符串:

=(TIMEVALUE(RIGHT(A5,12))-TIMEVALUE(RIGHT(A4,12)))*86400000
所有这些情况下的Excel结果:


3607667查看最后三位数字,excel公式似乎混淆了请求和响应。xxx123-xxx456应该是xxx667,而不是xxx333。在链接的答案中,我将您的第一个公式解读为=LEFTA2,2,但我的Excel不会接受这一公式。上面写着“这个公式有问题。”没有进一步的解释-谢谢,@pnuts,这很有效。通常情况下,我们不应该发布“无法复制”或“您的代码正在为我工作”作为答案,但有了这一级别的解释和奖金信息,我觉得这是有道理的+1.