我得到了一个时间戳(UTC),这是在未来。现在我想以人类可读的格式显示从现在开始的剩余时间,如"2h 15min"。但我不确定dateutil的哪种方法是最好的方法。有什么建议吗?我在想:
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);
试试下面的代码:-
long gmtOffset = TimeZone.getDefault().getRawOffset();
long utcTimestamp = item.getExpirationDate();
DateUtils.getRelativeTimeSpanString(utcTimestamp, gmtOffset, DateUtils.DAY_IN_MILLIS);
你需要通过SimpleDateFormat方法来做。请检查示例
Calendar cal = Calendar.getInstance();
DateFormat outputFormat = new SimpleDateFormat("hh:mm:ss a");
String formattedTime = outputFormat.format(cal.getTime());
最简单的方法就是使用这个,
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");
这将以您想要的方式显示时间。