All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.enilu.flash.core.util.DateTimeUtil Maven / Gradle / Ivy

package cn.enilu.flash.core.util;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import java.util.Date;

/**
 * 操作jodatime的工具类
 * @author  enilu([email protected])
 */
public final class DateTimeUtil {

    private DateTimeUtil() {
    }

    public static String format(DateTime dt, String pattern) {
        DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);
        return formatter.print(dt);
    }

    public static DateTime parse(String date, String pattern) {
        DateTimeFormatter formatter = DateTimeFormat.forPattern(pattern);
        return formatter.parseDateTime(date);
    }

    public static String formatDate(DateTime dt) {
        return format(dt, "yyyy-MM-dd");
    }

    public static DateTime parseDate(String date) {
        return parse(date, "yyyy-MM-dd");
    }

    public static String formatCompactDate(DateTime dt) {
        return format(dt, "yyyyMMdd");
    }

    public static DateTime parseCompactDate(String date) {
        return parse(date, "yyyyMMdd");
    }

    public static String formatTime(DateTime dt) {
        return format(dt, "HH:mm:ss");
    }

    public static String formatCompactTime(DateTime dt) {
        return format(dt, "HHmmss");
    }

    public static String formatDateTime(DateTime dt) {
        return format(dt, "yyyy-MM-dd HH:mm:ss");
    }

    public static DateTime parseDateTime(String date) {
        return parse(date, "yyyy-MM-dd HH:mm:ss");
    }

    public static String formatCompactDateTime(DateTime dt) {
        return format(dt, "yyyyMMddHHmmss");
    }

    public static DateTime parseCompactDateTime(String date) {
        return parse(date, "yyyyMMddHHmmss");
    }

    public static String formatHumanReadable(Date date) {
        if (date == null) {
            return "";
        }

        return formatHumanReadable(new DateTime(date));
    }

    public static String formatHumanReadable(DateTime date) {
        if (date == null) {
            return "";
        }

        long currentDate = System.currentTimeMillis();
        long createDate = date.getMillis();
        long sub = currentDate - createDate;
        String val = "刚刚";
        sub = sub / 1000;
        if (sub > 0) {
            if (sub < 60) {
                val = sub + "秒前";
            } else if (sub >= 60 && sub < 60 * 60) {
                val = sub / 60 + "分钟前";
            } else if (sub >= 60 * 60 && sub < 60 * 60 * 24) {
                val = (sub / (60 * 60)) + "小时前";
            } else if (sub >= 60 * 60 * 24 && sub < 60 * 60 * 24 * 365) {
                val = (sub / (60 * 60 * 24)) + "天前";
            } else {
                val = "1年前";
            }
        }

        return val;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy