Android:以人类可读的格式显示剩余时间
Android: show remaining time in human readable format
我得到了一个未来的时间戳 (UTC)。现在我想以人类可读的格式显示从现在开始的剩余时间,例如“2h 15min”。但我不确定 DateUtils 的哪种方法是最好的方法。有什么建议么?我在想:
这是示例代码:
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");
这将完全按照您想要的方式显示时间。希望对你有帮助。
我得到了一个未来的时间戳 (UTC)。现在我想以人类可读的格式显示从现在开始的剩余时间,例如“2h 15min”。但我不确定 DateUtils 的哪种方法是最好的方法。有什么建议么?我在想:
这是示例代码:
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
随便用,
System.out.println(hours + " hours " + minutes + " min");
这将完全按照您想要的方式显示时间。希望对你有帮助。