我花了一个小时通过stackoverflow试图找到一种正确的方法来计算剩余的天数,小时数,分钟数和秒数而不使用JODA-Time。我希望尽可能保持简单。
我正在寻求执行以下操作(请提供实例声明,我不确定是否为我们的Longs,Time或Calendar对象等):
difference = endingDate-currentTime
然后使用DD:HH:MM:SS格式
将textView设置为剩余时间换句话说,最好的方法是什么? (时区并不重要)如何设置结束日期,例如2013年12月31日,结束日期是什么类型?它是时间,日期还是日历对象?我想从结束日期中减去当前日期,以显示截至2013年12月31日的剩余天数。格式为DD:HH:MM:SS
谢谢!非常感谢帮助。
答案 0 :(得分:3)
我会告诉你如何划分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);
}