Java 使用Joda time实现类似Instagram的时间格式

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

如果目前没有一个简单的方法,我将只构建功能,但我是Joda Time的新手,我想知道是否有一个简单的方法可以做到这一点:

基本上,您有一个ISO8601格式的
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不适合我。