gpt4 book ai didi

java - 如何在android中添加两个毫秒

转载 作者:太空狗 更新时间:2023-10-29 12:40:56 26 4
gpt4 key购买 nike

我想计算正确计算的两次之间的差异然后我必须将它减半所以我将它除以 2 结果是好的。但是当我尝试将 timdedifferencemillis 添加到 startTime 时,它​​没有给我正确的结果......

开始时间= 05:53
结束时间= 17:57
我要结果 11:55
但我的代码给了我 06:55
请帮忙......

protected String transitTime2(String endtime, String starttime) {
SimpleDateFormat dt = new SimpleDateFormat("hh:mm");
Date startTime = null;
Date endTime;
long timdedifferencemillis = 0;
try {
startTime = dt.parse(starttime);
endTime = dt.parse(endtime);
long diff=startTime.getTime();
timdedifferencemillis = (endTime.getTime() - startTime.getTime())/2;
//timdedifferencemillis

} catch (ParseException e) {
e.printStackTrace();
}
long timdedifferencemillis1=startTime.getTime()+timdedifferencemillis;

int minutes = Math
.abs((int) ((timdedifferencemillis1 / (1000 * 60)) % 60));
int hours = Math
.abs((int) ((timdedifferencemillis1 / (1000 * 60 * 60)) % 24));
String hmp = String.format("%02d %02d ", hours, minutes);
return hmp;
}

最佳答案

问题可能是时区;当您最初解析 endtimestarttime 时,默认情况下(在没有格式字符串中指示和输入中表示的明确时区的情况下),Java 假定时间提供的是相对于系统的本地时区。然后,当您调用 getTime() , 它返回

the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object

一个解决方案是告诉您的 SimpleDateFormat 对象假定它解析的所有字符串都使用 GMT,而不是本地时区。尝试在初始化 dt 之后但在调用 dt.parse(...) 之前添加此行:

dt.setTimeZone(TimeZone.getTimeZone("GMT"));

关于java - 如何在android中添加两个毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26043916/

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