Skip to content

日期时间工具类

java
/**
 * <p>
 * DateTime 工具类
 * </p>
 *
 * @author Gnerv LiGen
 */
public class DateTimeTools {

    private DateTimeTools() {
    }

    public static LocalDateTime nowUtc() {
        return LocalDateTime.now(ZoneOffset.UTC);
    }

    /**
     * 当前时间的时间戳 时区采用 0 时区 使用时注意转换时区
     */
    public static Long currentTimeMillis() {
        return timeMillis(LocalDateTime.now(ZoneOffset.UTC));
    }

    public static Long timeMillis(LocalDateTime localDateTime) {
        return localDateTime.atZone(ZoneOffset.UTC).toInstant().toEpochMilli();
    }

    public static String formatter() {
        return formatter(LocalDateTime.now());
    }

    public static String formatter(LocalDateTime localDateTime) {
        return formatter(localDateTime, HYPHEN_SPACE_COLON_SPACE_YYYY_MM_DD_HH_MM_SS_SSS);
    }

    public static String formatter(LocalDateTime localDateTime, String dateTimeFormatter) {
        return formatter(localDateTime, DateTimeFormatter.ofPattern(dateTimeFormatter));
    }

    public static String formatter(String dateTimeFormatter) {
        return formatter(LocalDateTime.now(), DateTimeFormatter.ofPattern(dateTimeFormatter));
    }

    public static String formatter(DateTimeFormatter dateTimeFormatter) {
        return formatter(LocalDateTime.now(), dateTimeFormatter);
    }

    public static String formatter(LocalDateTime localDateTime, DateTimeFormatter dateTimeFormatter) {
        return dateTimeFormatter.format(localDateTime);
    }

    public static LocalDateTime parse(String datetime) {
        return LocalDateTime.parse(datetime);
    }

    public static LocalDateTime parse(String datetime, String formatter) {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(formatter);
        return parse(datetime, dateTimeFormatter);
    }

    public static LocalDateTime parse(String datetime, DateTimeFormatter dateTimeFormatter) {
        return LocalDateTime.parse(datetime, dateTimeFormatter);
    }

    public static LocalDateTime create(int year) {
        return create(year, 1, 1, 0, 0, 0, 0);
    }

    public static LocalDateTime create(int year, int month) {
        return create(year, month, 1, 0, 0, 0, 0);
    }

    public static LocalDateTime create(int year, int month, int dayOfMonth) {
        return create(year, month, dayOfMonth, 0, 0, 0, 0);
    }

    public static LocalDateTime create(int year, int month, int dayOfMonth, int hour) {
        return create(year, month, dayOfMonth, hour, 0, 0, 0);
    }

    public static LocalDateTime create(int year, int month, int dayOfMonth, int hour, int minute) {
        return create(year, month, dayOfMonth, hour, minute, 0, 0);
    }

    public static LocalDateTime create(int year, int month, int dayOfMonth, int hour, int minute, int second) {
        return create(year, month, dayOfMonth, hour, minute, second, 0);
    }

    public static LocalDateTime create(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond) {
        return LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond);
    }
}

Released under the MIT License.