我有一个int号,我需要将它转换为日期,但是以这种形式
(“几秒钟前”,“几分钟前”,“几小时前”“昨天”,“几天前”,“上周”,“上个月”,“去年”)
我可以得到日期
int seconds =1320105600;
int millis = seconds * 1000;
Date date = new Date(millis);
SimpleDateFormat sdf = new SimpleDateFormat("EEEE,MMMM d,yyyy h:mm,a", Locale.ENGLISH);
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String formattedDate = sdf.format(date);
如何将其转换为该形式
答案 0 :(得分:1)
您应该创建一个函数来执行此操作:
int currentSeconds = ((int) System.currentTimeMillis())/ 1000;
int diff = currentSeconds - seconds;
if (diff < 60)
formatedDate = "Few seconds ago";
else if (diff < 60 * 60)
formatedDate = "Few minutes ago";
等等。
答案 1 :(得分:0)
您可以使用Joda Time轻松获得两个日期之间的天数,分钟数和秒数。
java.util.Date d1, d2;
DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);
int numDays = Days.daysBetween(dt1, dt2).getDays();
int hours = Hours.hoursBetween(dt1, dt2).getHours() % 24;
int minutes = Minutes.minutesBetween(dt1, dt2).getMinutes() % 60);
int seconds = Seconds.secondsBetween(dt1, dt2).getSeconds() % 60);
if (numDays > 0) { return "A few days ago"; }
else if (hours > 0) { return "A few hours ago"; }
// And so on
您应该能够根据您的具体要求调整此模式(有Years.yearsBetweeen
和Months.monthsBetween
方法)。