惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
博客园 - 【当耐特】
D
Docker
Y
Y Combinator Blog
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
B
Blog
The GitHub Blog
The GitHub Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
爱范儿
爱范儿
A
About on SuperTechFans
量子位
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - microsoft_xin

用户属性数据库设计:如何平衡固定信息与灵活扩展? mysql数据库千万级数据量是分库分表好还是数据归档好 MySQL 优化实战:为何 DELETE + IN 子查询性能不佳,而 JOIN 却能高效利用索引? git的还原提交和撤销提交可以帮你快速回滚提交和推送 java语法使用小技巧-保留两位小数-用group对list数据分组取和 Navicat或DBeaver连接MySql提示错误 Unable to load authentication plugin ‘caching_sha2_password‘ 快速测试连接SQLServer数据库的方法 nlog使用小记(日志文件分割备份循环) IDEA常用快捷键 java中两个list集合取并集、交集和差集&对list数据进行对象属性筛选 Cron表达式及格式适用于各种调度服务quartz xxljob hangfire C#客户端实现域环境内Windows认证免密码自动身份认证登录 .NET List常见操作之交集并集差集(转) mysql-查看最近执行sql脚本 SharePoint安装 OpenID Connect、SAML、WS-Federation和/或OAuth2.0 SQLServer常用SQL脚本 使用VSTO创建修改和删除outlook会议加载项(二) 使用VSTO创建修改和删除outlook会议加载项(一)
java时间常用功能工具类
microsoft_xin · 2025-05-14 · via 博客园 - microsoft_xin

本类集成了常用的时间操作方法,包含:

1、将格式化字符串转换为日期

2、将日期转换为格式化的字符串

3、获取当前时间字符串

4、获取前一年或前一个月或前一天前一小时分钟的时间(支持按传入的不同时间类型生成不同的时间)

以下是时间操作工具类:

/**
 * 日期通用功能
 */
public class DateUtil {

    /**
     * 将格式化字符串转换为日期
     * @param strDate 日期格式的字符串
     * @Param strFormat 日期格式,如:"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"
     * @return 日期
     * @throws ParseException
     */
    public static Date parseToDate(String strDate,String strFormat) {
        SimpleDateFormat format = new SimpleDateFormat(strFormat);
        Date date = null;
        try {
            date = format.parse(strDate);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return date;
    }

    /**
     * 将格式化字符串转换为日期
     * @param strDate 日期格式的字符串
     * @return 日期
     * @throws ParseException
     */
    public static Date parseToDate(String strDate) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = format.parse(strDate);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return date;
    }

    /**
     *
     * @param date 日期
     * @param strFormat 日期格式,如:"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"
     * @return 日期格式的字符串
     */
    public static String parseToString(Date date,String strFormat){
        SimpleDateFormat format = new SimpleDateFormat(strFormat);
        try{
            String strDate = format.format(date);
            return strDate;
        }
        catch (Exception e){
            throw e;
        }
    }

    /**
     *
     * @param date 日期
     * @return 日期格式的字符串
     */
    public static String parseToString(Date date){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try{
            String strDate = format.format(date);
            return strDate;
        }
        catch (Exception e){
            throw e;
        }
    }

    /**
     * 获取当前时间
     * @return
     */
    public static Date getNow() {
        Date now = new Date();
        String strFormat = "yyyy-MM-dd HH:mm:ss";
        String strDate = parseToString(now,strFormat);
        Date date = parseToDate(strDate, strFormat);
        return date;
    }

    /**
     * 获取当前时间
     * @param strFormat
     * @return
     */
    public static Date getNow(String strFormat) {
        Date now = new Date();
        String strDate = parseToString(now,strFormat);
        Date date = parseToDate(strDate, strFormat);
        return date;
    }

    /**
     * 获取当前日期
     * @return
     */
    public static String getNowString(String strFormat) {
        Date now = new Date();
        String strDate = parseToString(now,strFormat);
        return strDate;
    }

    /**
     * 获取当前日期
     * @return
     */
    public static String getNowDateString() {
        Date now = new Date();
        String strFormat = "yyyy-MM-dd";
        String strDate = parseToString(now,strFormat);
        return strDate;
    }

    /**
     * 获取当前时间
     * @return
     */
    public static String getNowDateTimeString() {
        Date now = new Date();
        String strFormat = "yyyy-MM-dd HH:mm:ss";
        String strDate = parseToString(now,strFormat);
        return strDate;
    }

    /**
     * 获取时间(前一小时/分钟/天/月/年)
     * @param lDate 当前的时间
     * @param dType 时间类型(支持年月日时分)
     * @param num 向前或向后的数字
     * @return
     */
    public static Date getPreviousDate(Date lDate, DateTypeEnum dType, int num){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(lDate);
        switch (dType) {
            case DAY:
                calendar.add(Calendar.DAY_OF_MONTH, num);
                break;
            case MONTH:
                calendar.add(Calendar.MONTH, num);
                break;
            case YEAR:
                calendar.add(Calendar.YEAR, num);
                break;
            case HOUR:
                calendar.add(Calendar.HOUR_OF_DAY, num);
                break;
            case MIN:
                calendar.add(Calendar.MINUTE, num);
                break;
        }
        return calendar.getTime();
    }
}

  时间类型枚举类:

/**
 * 时间类型
 */
public enum DateTypeEnum {
    /*时间类型枚举*/
    MIN("MI", "分钟"),
    HOUR("H", "小时"),
    DAY("D", "天"),
    MONTH("M", "月"),
    YEAR("Y", "年");

    private String code;
    private String name;

    DateTypeEnum(String code,String name){
        this.code = code;
        this.name = name;
    }
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public boolean equals(DateTypeEnum dateType) {
        return getCode().equals(dateType.getCode());
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}