【转载】Java8时间工具类

JDK8基本上是现在最低的要求了。JDK新特性的时间工具类,应该是我们日常生活中能用到的,这里转载一个不错的时间工具类。

感谢原博主:https://www.cnblogs.com/luoliuniankk/p/9878070.html

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.Temporal;
public class DateUtil {

    public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HHmmss");
    public static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyyMM");
    public static final DateTimeFormatter SHORT_DATE_FORMATTER = DateTimeFormatter.ofPattern("yyMMdd");
    public static final DateTimeFormatter SHORT_DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyMMddHHmmss");
    public static final DateTimeFormatter DATETIME_FORMATTER =  DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
    public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");

    /**
     * 返回当前的日期
     * @return
     */
    public static LocalDate getCurrentLocalDate() {
        return LocalDate.now();
    }

    /**
     * 返回当前时间
     * @return
     */
    public static LocalTime getCurrentLocalTime() {
        return LocalTime.now();
    }

    /**
     * 返回当前日期时间
     * @return
     */
    public static LocalDateTime getCurrentLocalDateTime() {
        return LocalDateTime.now();
    }

    /**
     * yyyyMMdd
     *
     * @return
     */
    public static String getCurrentDateStr() {
        return LocalDate.now().format(DATE_FORMATTER);
    }

    /**
     * yyMMdd
     *
     * @return
     */
    public static String getCurrentShortDateStr() {
        return LocalDate.now().format(SHORT_DATE_FORMATTER);
    }

    public static String getCurrentMonthStr() {
        return LocalDate.now().format(MONTH_FORMATTER);
    }

    /**
     * yyyyMMddHHmmss
     * @return
     */
    public static String getCurrentDateTimeStr() {
        return LocalDateTime.now().format(DATETIME_FORMATTER);
    }

    /**
     * yyMMddHHmmss
     * @return
     */
    public static String getCurrentShortDateTimeStr() {
        return LocalDateTime.now().format(SHORT_DATETIME_FORMATTER);
    }

    /**
     * HHmmss
     * @return
     */
    public static String getCurrentTimeStr() {
        return LocalTime.now().format(TIME_FORMATTER);
    }

    public static String getCurrentDateStr(String pattern) {
        return LocalDate.now().format(DateTimeFormatter.ofPattern(pattern));
    }

    public static String getCurrentDateTimeStr(String pattern) {
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern));
    }

    public static String getCurrentTimeStr(String pattern) {
        return LocalTime.now().format(DateTimeFormatter.ofPattern(pattern));
    }

    public static LocalDate parseLocalDate(String dateStr, String pattern) {
        return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(pattern));
    }

    public static LocalDateTime parseLocalDateTime(String dateTimeStr, String pattern) {
        return LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern(pattern));
    }

    public static LocalTime parseLocalTime(String timeStr, String pattern) {
        return LocalTime.parse(timeStr, DateTimeFormatter.ofPattern(pattern));
    }

    public static String formatLocalDate(LocalDate date, String pattern) {
        return date.format(DateTimeFormatter.ofPattern(pattern));
    }

    public static String formatLocalDateTime(LocalDateTime datetime, String pattern) {
        return datetime.format(DateTimeFormatter.ofPattern(pattern));
    }

    public static String formatLocalTime(LocalTime time, String pattern) {
        return time.format(DateTimeFormatter.ofPattern(pattern));
    }

    public static LocalDate parseLocalDate(String dateStr) {
        return LocalDate.parse(dateStr, DATE_FORMATTER);
    }

    public static LocalDateTime parseLocalDateTime(String dateTimeStr) {
        return LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);
    }

    public static LocalTime parseLocalTime(String timeStr) {
        return LocalTime.parse(timeStr, TIME_FORMATTER);
    }

    public static String formatLocalDate(LocalDate date) {
        return date.format(DATE_FORMATTER);
    }

    public static String formatLocalDateTime(LocalDateTime datetime) {
        return datetime.format(DATETIME_FORMATTER);
    }

    public static String formatLocalTime(LocalTime time) {
        return time.format(TIME_FORMATTER);
    }

    /**
     * 日期相隔天数
     * @param startDateInclusive
     * @param endDateExclusive
     * @return
     */
    public static long periodDays(LocalDate startDateInclusive, LocalDate endDateExclusive) {
        return endDateExclusive.toEpochDay() - startDateInclusive.toEpochDay();
    }

    /**
     * 日期相隔小时
     * @param startInclusive
     * @param endExclusive
     * @return
     */
    public static long durationHours(Temporal startInclusive, Temporal endExclusive) {
        return Duration.between(startInclusive, endExclusive).toHours();
    }

    /**
     * 日期相隔分钟
     * @param startInclusive
     * @param endExclusive
     * @return
     */
    public static long durationMinutes(Temporal startInclusive, Temporal endExclusive) {
        return Duration.between(startInclusive, endExclusive).toMinutes();
    }

    /**
     * 日期相隔毫秒数
     * @param startInclusive
     * @param endExclusive
     * @return
     */
    public static long durationMillis(Temporal startInclusive, Temporal endExclusive) {
        return Duration.between(startInclusive, endExclusive).toMillis();
    }

    /**
     * 是否当天
     * @param date
     * @return
     */
    public static boolean isToday(LocalDate date) {
        return getCurrentLocalDate().equals(date);
    }

    /**
     * 获取此日期时间与默认时区<Asia/Shanghai>组合的时间毫秒数
     * @param dateTime
     * @return
     */
    public static Long toEpochMilli(LocalDateTime dateTime) {
        return dateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
    }

    /**
     * 获取此日期时间与指定时区组合的时间毫秒数
     * @param dateTime
     * @return
     */
    public static Long toSelectEpochMilli(LocalDateTime dateTime, ZoneId zoneId) {
        return dateTime.atZone(zoneId).toInstant().toEpochMilli();
    }
}

 

### 回答1: hutool-all-5.7.20.jar是一个Java编写的工具类库,它提供了丰富的工具方法、函数和静态常量,帮助开发者们高效地开发Java应用程序。它的具体特点包括: 1. 提供了基础型数据类型之间的转换、字符串、集合、日期、IO等常用工具类封装。 2. 提供了高效便捷的文件操作,包括读、写、复制、移动、压缩、解压等功能。 3. 提供了快速生成二维码和条码等功能。 4. 提供了XML文件解析、JSON转换等常用数据格式转换的封装。 5. 提供了加密、解密、摘要等常用加密算法封装,包括MD5、SHA、AES、DES等。 6. 提供了爬虫、定时任务等高级功能的支持,可以帮助开发者更方便地处理复杂业务逻辑。 总之,hutool-all-5.7.20.jar是一个非常优秀的Java工具类库,它能够极大地提高Java应用程序的开发效率,为开发者们带来更多的便捷和支持。 ### 回答2: hutool-all-5.7.20.jar是一个开源的Java工具库,主要用于简化Java开发中的一些常见任务。它包含丰富的工具类,如字符串工具类、集合工具类、IO工具类、日期工具类等等,可以让开发人员更加便捷地完成开发任务。 hutool-all-5.7.20.jar的优点很多,首先它提供了很多高效的工具类,这些工具类可以帮助开发人员节省很多时间和精力。其次,这个Java工具库非常易于使用,开发人员可以轻松地将其集成到自己的项目中,而且不需要学习很多复杂的API和语法。 此外,hutool-all-5.7.20.jar还提供了很多实用的功能,如JSON解析、加密解密、文件压缩、Excel处理等等,这些功能可以让开发人员更加方便地完成各种开发任务。最后,这个Java工具库还拥有非常活跃的社区支持,开发人员可以通过社区获得帮助和指导。 总之,hutool-all-5.7.20.jar是一个非常实用的Java工具库,它可以帮助开发人员更加高效地完成开发任务。如果你是Java开发人员,那么强烈建议你使用这个工具库,相信它一定能够大大提升你的开发效率。 ### 回答3: hutool-all-5.7.20.jar是一款Java工具类库,提供大量封装好的工具类、接口和方法,包括字符串操作、日期时间处理、加密解密、文件操作、网络通信、HTML解析等。hutool-all-5.7.20.jar底层基于jdk封装,采用Apache License 2.0协议,使用和转载完全免费。 hutool-all-5.7.20.jar提供了许多常用的工具类,让开发者可以快速高效地完成各种操作,例如:StrUtil类中提供了许多字符串操作的方法,如判断是否为空、是否为null、是否为空白字符等;DateUtil类中提供了格式化、解析、计算时间差等方法,非常适合处理日期时间;SecureUtil类中提供了常见的加密算法,如md5、SHA-1等;FileUtil类中提供了常用的文件操作方法,如创建文件、删除文件、复制文件等;EmailUtil、HttpUtil等类则为网络通信提供了方便的方法等等。 由于hutool-all-5.7.20.jar提供了大量丰富的工具类和方法,使得开发人员可以快速编写出高质量、高效的Java程序,提高生产力和开发速度,受到了广大Java开发者的推崇。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值