gpt4 book ai didi

java - 解析只是时间以获得差异

转载 作者:行者123 更新时间:2023-12-01 06:49:10 25 4
gpt4 key购买 nike

我正在尝试简化我的解析日志和收集时间的生活。我得到一个包含日志语句的文件,所有日志语句都以这种格式的时间戳开头

16:08:39.660

我想把这个字符串变成一个简单的时间,这样我就可以以秒或毫秒为单位得到两者之间的差异。我一直在看这里,建议使用

SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss.sss");
Date start = format.parse(startTimeString);
Date end = format.parse(endTimeString);

long difference = end.getTime() - start.getTime();

然而,这给了我完全不同的时间。例如,16:08:39.660给我的是 4 点 19 分。因为时代不对,它给了我负面的差异,这对于我的特定背景来说是不可能的。怎么转

16:08:39.660
16:08:52.452

相差12.792

最佳答案

您需要 SSS 毫秒,您的:

SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss.SSS");

如果您使用的是 java 8+,更好的方法是使用 java.time.LocalTimejava.time.Duration,这样您就不必编写模式:

LocalTime start = LocalTime.parse("16:08:39.660");
LocalTime end = LocalTime.parse("16:08:52.452");
Duration duration = Duration.between(start, end);

System.out.println(duration.toMillis()); // 12792
System.out.println(duration.toMillis() / 1000.00); // 12.792
System.out.println(duration.toSeconds()); // 12

关于java - 解析只是时间以获得差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com