gpt4 book ai didi

android - 计算没有 Joda 时间的剩余日期

转载 作者:行者123 更新时间:2023-11-29 17:54:40 27 4
gpt4 key购买 nike

我花了一个小时通过 stackoverflow 试图找到一种正确的方法来计算剩余的天数、小时数、分钟数和秒数而不使用 JODA-Time。我希望让事情尽可能简单。

我正在寻求执行以下操作(请提供实例声明,我不确定是否对我们 Longs、Time 或 Calendar 对象等):

difference =  endingDate-currentTime

然后用DD:HH:MM:SS格式设置一个textView为剩余时间

换句话说,最好的方法是什么? (时区不重要)如何将结束日期设置为例如 2013 年 12 月 31 日以及我的结束日期是什么类型?它是时间、日期还是日历对象?然后我想从结束日期中减去当前日期以显示到 2013 年 12 月 31 日的剩余天数。格式为 DD:HH:MM:SS

谢谢!非常感谢您的帮助。

最佳答案

我将留给您解决如何划分 difference 变量以获得天数、小时数等。但这就是我完成其余部分的方式。

Calendar endCalendar = new Calendar();

// Set end to 31th Dec 2013 10:15:30 am local time
endCalendar.set(2013, 11, 31, 10, 15, 30);

long localEndTimeInMillis = endCalendar.getTimeInMillis();
long localCurrentTimeInMillis = Calendar.getInstance().getTimeInMillis();

// Convert to UTC.
// Easy way to compensate if the current and end times are in different DST times
utcEndTimeInMillis = getUTCTimeInMillis(localEndTimeInMillis);
utcCurrentTimeInMillis = getUTCTimeInMillis(localCurrentTimeInMillis);

long difference = utcEndTimeInMillis - utcCurrentTimeInMillis;

转换成UTC的方法...

public long getUTCTimeInMillis(long localTimeInMillis) {
return localTimeInMillis - TimeZone.getDefault().getRawOffset() - (TimeZone.getDefault().inDaylightTime(new Date(localTimeInMillis)) ? TimeZone.getDefault().getDSTSavings() : 0);
}

关于android - 计算没有 Joda 时间的剩余日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20310891/

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