G'day那里!
我的任务就是显示已创建消息的时间已经消失了多少。例如,我发送消息5分钟前,我有时间,我需要显示消息“5分钟前”。
我从System.currentTimeMillis()获取当前日期,并在创建消息时执行日期的子日期,但是如何获取“5分钟前”我不知道的消息。
你能帮帮我吗?
答案 0 :(得分:2)
将两次的差异从毫秒转换为分钟,然后将结果时间与字符串“分钟前”连接起来
long timeDifference = messageTime - currentTime;
String message = (timeDifference/60000) + " mins ago";
答案 1 :(得分:1)
您知道表示时间变化的long表示以毫秒为单位(假设原始消息创建的时间戳和当前时间戳都是通过System.currentTimeMillis()创建的。)
然后,您可以使用简单的数学运算将毫秒转换为分钟。 1,000毫秒= 1秒,因此60,000 = 1分钟。
你到底在哪里陷入困境?
答案 2 :(得分:1)
试试此代码
import java.util.Calendar;
public class DateDifferent{
public static void main(String[] args){
long diff = yourMilliseconds - nowMilliseconds;
long diffSeconds = diff / 1000;
long diffMinutes = diff / (60 * 1000);
long diffHours = diff / (60 * 60 * 1000);
long diffDays = diff / (24 * 60 * 60 * 1000);
}
}
答案 3 :(得分:1)
您可以使用此静态方法。
public static String getElapsedTime(Date oldDate) {
long duration = System.currentTimeMillis() - oldDate.getTime();
long seconds = TimeUnit.MILLISECONDS.toSeconds(duration);
long days = TimeUnit.MILLISECONDS.toDays(duration);
long hours = TimeUnit.MILLISECONDS.toHours(duration);
long minutes = TimeUnit.MILLISECONDS.toMinutes(duration);
if (days > 0) {
return days + " days";
}
if (hours > 0) {
return hours + " hrs";
}
if (minutes > 0) {
return minutes + " minutes";
}
return seconds + " seconds";
}