Java 使用Joda time实现类似Instagram的时间格式
如果目前没有一个简单的方法,我将只构建功能,但我是Joda Time的新手,我想知道是否有一个简单的方法可以做到这一点: 基本上,您有一个ISO8601格式的Java 使用Joda time实现类似Instagram的时间格式,java,jodatime,Java,Jodatime,如果目前没有一个简单的方法,我将只构建功能,但我是Joda Time的新手,我想知道是否有一个简单的方法可以做到这一点: 基本上,您有一个ISO8601格式的time,并创建一个新的日期时间(time)使用Joda时间 现在,如果时间是5秒前,我想读“5s”,如果是10分钟前,“10m”,17小时前,“17h”,3周前,“3w” 显然,如果某个东西是在79秒前写的,它会意识到这超过了1分钟,并选择在几分钟内检查它,而不是说“1m”而不是“79s” 更新: 到目前为止,我的快速解决方案是: pub
time
,并创建一个新的日期时间(time)代码>使用Joda时间
现在,如果时间是5秒前,我想读“5s”,如果是10分钟前,“10m”,17小时前,“17h”,3周前,“3w”
显然,如果某个东西是在79秒前写的,它会意识到这超过了1分钟,并选择在几分钟内检查它,而不是说“1m”而不是“79s”
更新:
到目前为止,我的快速解决方案是:
public void setTimestamp() {
DateTime now = DateTime.now();
if (DateTimeComparator.getInstance().compare(timeCreated, now.minusSeconds(1)) == 1) {
timestamp = "1s";
} else if (DateTimeComparator.getInstance().compare(timeCreated, now.minusMinutes(1)) == 1) {
timestamp = Seconds.secondsBetween(timeCreated, now).getSeconds() + "s";
} else if (DateTimeComparator.getInstance().compare(timeCreated, now.minusHours(1)) == 1) {
timestamp = Minutes.minutesBetween(timeCreated, now).getMinutes() + "m";
} else if (DateTimeComparator.getInstance().compare(timeCreated, now.minusDays(1)) == 1) {
timestamp = Hours.hoursBetween(timeCreated, now).getHours() + "h";
} else if (DateTimeComparator.getInstance().compare(timeCreated, now.minusWeeks(1)) == 1) {
timestamp = Days.daysBetween(timeCreated, now).getDays() + "d";
} else if (DateTimeComparator.getInstance().compare(timeCreated, now.minusYears(1)) == 1) {
timestamp = Weeks.weeksBetween(timeCreated, now).getWeeks() + "w";
} else {
timestamp = Years.yearsBetween(timeCreated, now).getYears() + "y";
}
}
它仍然需要一些测试,但乍一看,它似乎可以工作。我正在使用Java。momentjs不适合我。