【问题标题】:Android : countdown and format timeAndroid:倒计时和格式化时间
【发布时间】:2012-04-17 08:37:03
【问题描述】:

我有一个以毫秒为单位的数据,并且使用 CountDown 类我会以这种格式显示时间:天:小时:分钟:秒。 如果我做毫秒 / 1000 我有总秒数 如果我这样做(毫秒/ 1000)/ 60 我有总分钟数 ETC 但是我怎样才能以这种格式显示倒计时:2 天:21 小时:56 分钟:00 秒

谢谢

【问题讨论】:

标签: android time countdown


【解决方案1】:

我认为您需要使用 mod (%) 运算符从每个分区中提取余数。

这个怎么样:

final long SEC_PER_DAY = 24 * 60 * 60;
final long SEC_PER_HOUR = 60 * 60;
final long SEC_PER_MIN = 60;

public void onTick(long millis) {
    long tot_sec   = millis/1000;
    long rem_days  = tot_sec / SEC_PER_DAY;
    long rem_hours = (tot_sec % SEC_PER_DAY) / SEC_PER_HOUR;
    long rem_mins  = ((tot_sec % SEC_PER_DAY) % SEC_PER_HOUR) / SEC_PER_MIN;
    long rem_secs  = ((tot_sec % SEC_PER_DAY) % SEC_PER_HOUR) % SEC_PER_MIN;

    // and then format as you please...
}

【讨论】:

    【解决方案2】:

    你应该使用 DateFormat 或 SimpleDateFormat,见http://developer.android.com/reference/java/text/DateFormat.html

    首先,您应该将毫秒转换为日期。

    Date date = new Date();
    date.setTime(millis);
    

    然后您可以使用 DateFormat 将时间戳格式化为人类可读的字符串。

    【讨论】:

    • 我觉得他有的是时间跨度
    • 如何将这种格式的日期转换为日/月/年到毫秒?
    • 我猜你可以使用 Date.setYear/Date.setMonth 等。
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多