Android:以人类可读的格式显示剩余时间

Android: show remaining time in human readable format

我得到了一个未来的时间戳 (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);

您需要通过 SimpleDateFormat 方法来完成。请检查示例。

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

尝试如下代码:-

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

    DateUtils.getRelativeTimeSpanString(utcTimestamp, gmtOffset, DateUtils.DAY_IN_MILLIS);

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

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

这就是您从 localTimestamp - localNow

中获取 "hours"、"minutes" 或 "seconds" 的方法

随便用,

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

这将完全按照您想要的方式显示时间。希望对你有帮助。