首页 > 编程语言 > 详细

java时间工具-转化成XXX前(仅适用于LocalDateTime)

时间:2020-08-12 15:38:58      阅读:59      评论:0      收藏:0      [点我收藏+]
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DateTimeToStringUtil {
    private static final String SECONDS_AGO_SUFFIX = "秒前";
    private static final String MINUTES_AGO_SUFFIX = "分钟前";
    private static final String HOURS_AGO_SUFFIX = "小时前";
    private static final DateTimeFormatter DAYS_AGO_FORMAT = DateTimeFormatter.ofPattern("MM-dd");
    private static final DateTimeFormatter YEARS_AGO_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    private static final DateTimeFormatter SPECIFIC_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    private static final DateTimeFormatter TIME_OF_YEAR_FORMAT = DateTimeFormatter.ofPattern("MM-dd HH:mm");

    public static String format(LocalDateTime time){
        LocalDateTime now = LocalDateTime.now();
        if (time.compareTo(now) >= 0){
            return time.format(SPECIFIC_FORMAT);
        }
        Duration duration = Duration.between(time, now);
        if (time.getYear() < now.getYear()){
            return time.format(YEARS_AGO_FORMAT);
        }
        if (duration.toDays() > 0){
            return time.format(DAYS_AGO_FORMAT);
        }
        if (duration.toHours() > 0){
            return duration.toHours() + HOURS_AGO_SUFFIX;
        }
        if (duration.toMinutes() > 0){
            return duration.toMinutes() + MINUTES_AGO_SUFFIX;
        }
        if (duration.getSeconds() > 0){
            return duration.getSeconds() + SECONDS_AGO_SUFFIX;
        }
        return time.format(SPECIFIC_FORMAT);
    }
}

 

java时间工具-转化成XXX前(仅适用于LocalDateTime)

原文:https://www.cnblogs.com/joequa/p/13490488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!