`
爪哇GOOD
  • 浏览: 56078 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

日期类的一些处理小结

 
阅读更多
public class DateUtil {
    private static final String formatString = "yyyy-MM-dd HH:mm:ss SSS";
    private static final String formatStringScd = "yyyy-MM-dd HH:mm:ss";
    private static final String formatStringMi = "yyyy-MM-dd HH:mm";
    private static final String formatStringHr = "yyyy-MM-dd HH";
    private static final String formatStringDy = "yyyy-MM-dd";
    private static final SimpleDateFormat formatStrScd = new SimpleDateFormat(
            "HH:mm");
    private static SimpleDateFormat formaterFull = new SimpleDateFormat(formatString);
    private static SimpleDateFormat formaterScd = new SimpleDateFormat(formatStringScd);
    private static SimpleDateFormat formaterMi = new SimpleDateFormat(formatStringMi);
    private static SimpleDateFormat formaterHr = new SimpleDateFormat(formatStringHr);
    private static SimpleDateFormat formaterDy = new SimpleDateFormat(formatStringDy);

    public synchronized static String format(Date date) {

        return formaterFull.format(date);
    }

    public synchronized static String format(Date date, String format) {
        try {
            SimpleDateFormat formater = getFormater(format);
            return formater.format(date);
        } catch (Exception ex) {
            return null;
        }
    }

    public synchronized static Date parse(String date) {
        try {
            return formaterFull.parse(date);
        } catch (Exception ex) {
            try {
                return formaterScd.parse(date);
            } catch (Exception sEx) {
                try {
                    return formaterMi.parse(date);
                } catch (Exception mEx) {
                    try {
                        return formaterHr.parse(date);
                    } catch (Exception hEx) {
                        try {
                            return formaterDy.parse(date);
                        } catch (Exception dEx) {
                            return null;
                        }
                    }
                }
            }
        }
    }

    public synchronized static Date parse(String date, String formatString) {
        try {
            return getFormater(formatString).parse(date);
        } catch (Exception ex) {
            return null;
        }
    }

    private static Map<String, SimpleDateFormat> mapFormat = new HashMap<String, SimpleDateFormat>();

    private synchronized static SimpleDateFormat getFormater(String formatString) {
        if (mapFormat.containsKey(formatString)) {
            return mapFormat.get(formatString);
        } else {
            SimpleDateFormat formater = new SimpleDateFormat(formatString);
            mapFormat.put(formatString, formater);
            return formater;
        }
    }

    public static Date addSecond(Date src, Integer value) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.SECOND, value);
        src = calendar.getTime();
        return src;
    }

    public static Date addMinute(Date src, Integer value) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.MINUTE, value);
        src = calendar.getTime();
        return src;
    }

    public static Date addMinute(Date src, Integer value, Date maxData) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.MINUTE, value);
        src = calendar.getTime();
        if (src.after(maxData)) {
            return maxData;
        }
        return src;
    }

    public static Date addHour(Date src, Integer value, Date maxData) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.HOUR, value);
        src = calendar.getTime();
        if (src.after(maxData)) {
            return maxData;
        }
        return src;
    }

    public static Date addHour(Date src, Integer value) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.HOUR, value);
        src = calendar.getTime();
        return src;
    }

    public static Date addDays(Date src, Integer days) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.DATE, days);
        src = calendar.getTime();
        return src;
    }

    public static Date addMonth(Date src, Integer value) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.MONTH, value);
        src = calendar.getTime();
        return src;
    }

    public static Date addYear(Date src, Integer value) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(src);
        calendar.add(Calendar.YEAR, value);

        src = calendar.getTime();
        return src;
    }

    public static Date nowTime() {
        return new Date();
    }

    public static int subTimeMinute(Date src1, Date src2) {
        return (int) ((src1.getTime() - src2.getTime()) / (1000 * 60));
    }

    public static String getDateHm(Date date) {
        return formatStrScd.format(date);
    }

    public static String getDateYmD(Date date) {
        return formaterFull.format(date);
    }

    /**
     * 时间相加1小时 *
     */
    public static Date addOneHour(Date startDate, Integer hours) {
        startDate.setMinutes(startDate.getHours() + hours);
        return startDate;
    }

    //判断<firstDate>时间点是否在<secondDate>时间点之前
    public static boolean isBefore(Date firstDate, Date secondDate) {

        return compare(firstDate, secondDate) < 0 ? true : false;
    }

    public static int compare(Date firstDate, Date secondDate) {
        Calendar firstCalendar = null;
        if (firstDate != null) {
            firstCalendar = Calendar.getInstance();
            firstCalendar.setTime(firstDate);
        }
        Calendar secondCalendar = null;
        if (firstDate != null) {
            secondCalendar = Calendar.getInstance();
            secondCalendar.setTime(secondDate);
        }
        try {
            return firstCalendar.compareTo(secondCalendar);
        } catch (NullPointerException e) {
            throw new IllegalArgumentException(e);
        } catch (IllegalArgumentException e) {
            throw new IllegalArgumentException(e);
        }
    }
}
分享到:
评论

相关推荐

    java日期处理小结

    在Java中,日期处理是一项常见的任务,涉及到多个类和方法。本篇文章主要总结了Java中关于日期处理的基础知识,包括`java.util.Calendar`,`java.util.GregorianCalendar`以及`java.util.Date`这三个核心类。 首先...

    Python-基础-时间日期处理小结.html

    Python-基础-时间日期处理小结.html

    JAVA日期判断方法小结

    "JAVA日期判断方法小结" 在JAVA语言中,日期判断是非常重要的一部分,以下是常见的日期判断方法的总结: 1. 判断某年是否为润年 判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```...

    MySQL 获得当前日期时间的函数小结

    这篇小结将详细介绍几个常用的函数,帮助你更好地理解和使用这些功能。 首先,`now()`函数是最常用的获取当前日期时间的函数,它返回服务器上的当前日期和时间,格式为`YYYY-MM-DD HH:MM:SS`。例如,`now()`可能...

    sqlserver 中时间为空的处理小结

    现将几种主要情况进行小结: 一、如何输入NULL值 如果不输入null值,当时间为空时,会默认写入”1900-01-01″,在业务处理时很麻烦。 ctrl+0即可输入NULL值。 二、如何在sql语句中判断为NULL的时间字段 假设表为:...

    db2有关日期使用小结

    本文档详细介绍了DB2 中关于日期的一些基本用法,包括如何获取当前日期、时间、日期的各个组成部分以及如何计算特定日期等。通过对这些基础功能的掌握,可以帮助数据库开发者更高效地管理和操作数据。在实际应用中,...

    Java中Date和Calendar日期处理

    关于java中date和Calendar日期处理小结,包含一些常用方法等

    JavaScript时间日期操作实例小结【5个示例】

    在这个实例小结中,我们将探讨5个JavaScript日期时间操作的例子,帮助理解如何在JavaScript中处理日期和时间。 1. 指定位置的时钟显示 这个例子创建了一个始终位于网页中间的12小时制时钟。通过`Date`对象获取当前...

    PYTHON基础-时间日期处理小结

    Python基础-时间日期处理小结涉及的知识点包括Python中的时间日期处理方法,这主要通过datetime模块和time模块来实现。时间日期处理在编程中是基础且重要的一环,尤其在需要记录事件时间、处理时间数据的业务场景中...

    php日期操作技巧小结_.docx

    以下是对PHP日期操作的...以上技巧对于日常PHP开发中的日期处理非常实用。理解并熟练运用这些方法,能够帮助开发者更好地管理和操作日期数据,同时确保代码的准确性和安全性。希望这些内容能对PHP编程实践有所帮助。

    python中日期和时间格式化输出的方法小结

    本小结将主要介绍`datetime`模块中的`strftime()`和`strptime()`函数,这两个函数能够帮助开发者以指定的格式输出日期和时间,或者将字符串转换成日期时间对象。 `strftime()`函数是用来将日期时间对象格式化为字符...

    calendar的用法小结

    Java 中 Calendar 类的用法小结 Calendar 类是 Java 语言中一个基本而重要的组成部分,用于处理日期和时间。下面是 Calendar 类的用法小结: 一、取得当前时间 使用 Calendar.getInstance() 方法可以取得当前时间...

    php 日期时间处理函数小结

    在实际项目中,可以结合PHP的其他日期时间函数,如`strtotime`、`date`、`DateTime`类等,来实现更复杂的日期时间处理需求。例如,可以利用`DateTime::add`和`DateTime::sub`进行日期的加减,或者使用`date_create_...

    SQL SERVER 关于日期函数(字符转日期,日期转字符串)

    小结 本文总结了 SQL Server 中的日期函数,包括字符转日期、日期转字符串等方面的知识点。日期函数是数据库管理系统中非常重要的一部分,掌握日期函数可以帮助开发者更好地处理日期和时间数据。

    银行业务系统小结

    ### 银行业务系统小结 #### 一、银行业务系统基础知识 银行业务系统是银行内部处理各类金融交易和客户信息的复杂网络,涵盖了从账户管理、交易处理到风险管理等多个方面。为了确保数据的准确性和系统的高效运行,...

    SQL server 和C#中的DateTime使用小结

    SQL Server 和 C# 中的 DateTime 使用小结 SQL Server 中的日期函数是数据库管理系统中非常重要的一部分,它提供了多种日期函数来操作日期类型的数据。同时,在 C# 中也提供了多种方法来处理日期类型的数据。本文将...

    JavaScript 日期时间选择器一些小结

    总的来说,`flatpickr` 是一个强大且灵活的 JavaScript 日期时间选择器,无论你是需要简单的日期选择功能,还是需要复杂的日期处理逻辑,它都能提供满足需求的解决方案。其易用性和丰富的定制选项,使得它成为开发者...

    Bruce作品小结

    《Bruce作品小结——Delphi编程的多元应用》 Bruce的作品集合是一套由Delphi编程语言编写的实用工具,涵盖了文本编辑、文件管理、视觉特效以及多媒体播放等多个领域,为用户提供了丰富的功能体验。让我们逐一深入...

Global site tag (gtag.js) - Google Analytics