在那里!
我的任务是显示从创建消息以来已经过去了多少时间。例如,我 5 分钟前发送消息,我有很长的时间,我需要显示消息“5 分钟前”。
我从 System.currentTimeMillis() 获取当前日期并在创建消息时执行子日期,但是我不知道如何获得像“5 分钟前”这样的消息。
你可以帮帮我吗?
将两次的差异从毫秒转换为分钟,然后将结果时间与字符串“mins ago”连接起来
long timeDifference = messageTime - currentTime;
String message = (timeDifference/60000) + " mins ago";
您知道表示时间变化的 long 以毫秒为单位(假设原始消息创建的时间戳和当前时间戳都是通过 System.currentTimeMillis() 创建的)。
然后,您可以使用简单的数学将毫秒转换为分钟。1,000 毫秒 = 1 秒,因此 60,000 = 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);
}
}
你可以有这个静态方法。
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";
}