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

时间:2015-07-12 09:57:34

标签: android datetime datetime-format

我有一个将来的时间戳(UTC)。现在我想以人类可读的格式显示剩下的时间,例如" 2h 15min "。但我不确定DateUtils的哪种方法是最好的方法。有什么建议?我在考虑:

  

DateUtils.getRelativeDateTimeString

这是一个示例代码:

scene.updateMatrixWorld()

解决方案:根据您的想法,我是如何解决的。谢谢!

            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

3 个答案:

答案 0 :(得分:3)

请尝试以下代码: -

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

最简单,最简单的方法就是使用

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");

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