gpt4 book ai didi

Android:将 2 个不同的时区转换为 UTC 并计算它们在天数、小时数和分钟数上的差异

转载 作者:太空狗 更新时间:2023-10-29 15:20:24 26 4
gpt4 key购买 nike

我还没有找到一个直接的方法来解决这个问题。我见过很多不同的例子,有些实际上相互冲突,有些则使用已弃用的调用,我不确定为什么很难找到可靠的答案。

所以我有一个从网络服务返回的时间戳,格式如下:

"yyyy-MM-dd hh:mm:ss"

*即使时区不是他们时间戳的一部分,时间也是东部时间。

我想知道的是计算 Web 服务的时间戳 (EST) 与正在使用的电话的当前时间戳之间的时间差的最佳方法,它可以在任何时区。然后将差异显示为剩余天数、剩余小时数和剩余分钟数的倒计时。

目前我正在做这样的事情:

public String getTimeLeft(String date) {
StringBuilder dateString = new StringBuilder();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("EST"));
Date dateObj = formatter.parse(date);

Time time = new Time(Time.getCurrentTimezone());
time.set(dateObj.getTime());
time.timezone = Time.TIMEZONE_UTC;
long timeInMill = time.normalize(true);
endCal.setTimeInMillis(timeInMill);

currCal.setTime(new Date());

long timeDiff = endCal.getTimeInMillis() - currCal.getTimeInMillis();
int days = (int) (timeDiff / (1000*60));
int hours = (int) ((timeDiff / (1000*60*60))%24);
int minutes = (int) ((timeDiff % (1000*60*60)) / (1000*60));

dateString.append(days + (days == 1 ? " DAY " : " DAYS "));
dateString.append(hours + (hours == 1 ? " HOUR " : " HOURS "));
dateString.append(minutes + (minutes == 1 ? " MINUTE " : " MINUTES "));

return dateString.toString();
}

...时区转换有问题,因为时差不准确。任何帮助深表感谢。提前致谢。

最佳答案

如果您可以获得设备的时区,请考虑从您的网络服务发送纪元时间,这样纪元(不是以毫秒为单位)+-(以秒为单位的时区差异)现在您可以计算差异epochlongvalue-(System.currentTimeMillis()/1000) 您可以将此值转换为 hh:mm:ss Convert seconds value to hours minutes seconds?

关于Android:将 2 个不同的时区转换为 UTC 并计算它们在天数、小时数和分钟数上的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336159/

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