【问题标题】:Android: show remaining time in human readable formatAndroid:以人类可读的格式显示剩余时间
【发布时间】:2015-09-30 17:21:56
【问题描述】:

我得到了一个未来的时间戳 (UTC)。现在我想以“2h 15min”之类的人类可读格式显示从现在开始的剩余时间。但我不确定 DateUtils 的哪种方法是最好的方法。有什么建议?我在想:

DateUtils.getRelativeDateTimeString

这是一个示例代码:

            int gmtOffset = TimeZone.getDefault().getRawOffset();
            long utcTimestamp = item.getExpirationDate();
            long localTimestamp = utcTimestamp + gmtOffset;

            Calendar c = Calendar.getInstance();
            long localNow = c.getTimeInMillis();

            // ToDo: show timespan of (localTimestamp - localNow) in human readable format e.g. 2h 5min left

解决方案:我就是按照你的想法解决的。谢谢!

    final CharSequence timespan = DateUtils.getRelativeTimeSpanString(
            localTimestamp,
            localNow,
            DateUtils.MINUTE_IN_MILLIS,
            DateUtils.FORMAT_ABBREV_RELATIVE);

【问题讨论】:

    标签: android datetime datetime-format


    【解决方案1】:

    你需要通过 SimpleDateFormat 方法来做。请检查示例。

    Calendar cal = Calendar.getInstance();
    DateFormat outputFormat = new SimpleDateFormat("hh:mm:ss a");
    String formattedTime = outputFormat.format(cal.getTime());
    

    【讨论】:

    • 但这将输出 02:15 而不是 2 小时 15 分钟。对吗?
    • SimpleDateFormat("hhhh:mmmm a");请搜索,如何使用 SimpleDateFormat 来显示这种类型的输出。我想,你找到了。
    【解决方案2】:

    试试下面的代码:-

        long gmtOffset = TimeZone.getDefault().getRawOffset();
        long utcTimestamp = item.getExpirationDate();
    
        DateUtils.getRelativeTimeSpanString(utcTimestamp, gmtOffset, DateUtils.DAY_IN_MILLIS);
    

    【讨论】:

    • 我使用的函数和参数略有不同。但这个想法是正确的。因此,我接受您的回答,并将在上面发布我的解决方案。
    【解决方案3】:

    最简单和最简单的方法就是使用这个,

    int seconds = (int) (milliseconds / 1000) % 60 ;
    int minutes = (int) ((milliseconds / (1000*60)) % 60);
    int hours   = (int) ((milliseconds / (1000*60*60)) % 24);
    

    这是您可以从localTimestamp - localNow 获取“小时”、“分钟”或“秒”的方式

    随便用,

    System.out.println(hours + " hours " + minutes + " min");
    

    这将以您想要的方式显示时间。希望对您有所帮助。

    【讨论】:

    • 这是一个人手不足的解决方案,因为它不关心区域设置和语言。小时和分钟在英语、德语、俄语等中的名称不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2020-06-27
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    相关资源
    最近更新 更多