`

Java一组日期方法

    博客分类:
  • Java
阅读更多
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DateUtil
{

    /**
     * 格式化日期
     * 
     * @param dateStr
     *            字符型日期
     * @param format
     *            格式
     * @return 返回日期
     */
    public static java.util.Date parseDate(String dateStr, String format)
    {
        java.util.Date date = null;
        try
        {
            java.text.DateFormat df = new java.text.SimpleDateFormat(format);
            String dt = dateStr.replaceAll("-", "/");
            if ((!dt.equals("")) && (dt.length() < format.length()))
            {
                dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]", "0");
            }
            date = (java.util.Date) df.parse(dt);
        }
        catch (Exception e)
        {
        }
        return date;
    }

    /**
     * @param dateStr
     * @return Date
     */
    public static java.util.Date parseDate(String dateStr)
    {
        return parseDate(dateStr, "yyyy/MM/dd");
    }

    /**
     * 格式化输出日期
     * 
     * @param date
     *            日期
     * @param format
     *            格式
     * @return 返回字符型日期
     */
    public static String format(java.util.Date date, String format)
    {
        String result = "";
        try
        {
            if (date != null)
            {
                java.text.DateFormat df = new java.text.SimpleDateFormat(format);
                result = df.format(date);
            }
        }
        catch (Exception e)
        {
        }
        return result;
    }

    public static String format(java.util.Date date)
    {
        return format(date, "yyyy/MM/dd");
    }

    /**
     * 返回年份
     * 
     * @param date
     *            日期
     * @return 返回年份
     */
    public static int getYear(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.YEAR);
    }

    /**
     * 返回月份
     * 
     * @param date
     *            日期
     * @return 返回月份
     */
    public static int getMonth(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.MONTH) + 1;
    }

    /**
     * 返回日份
     * 
     * @param date
     *            日期
     * @return 返回日份
     */
    public static int getDay(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.DAY_OF_MONTH);
    }

    /**
     * 返回小时
     * 
     * @param date
     *            日期
     * @return 返回小时
     */
    public static int getHour(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.HOUR_OF_DAY);
    }

    /**
     * 返回分钟
     * 
     * @param date
     *            日期
     * @return 返回分钟
     */
    public static int getMinute(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.MINUTE);
    }

    /**
     * 返回秒钟
     * 
     * @param date
     *            日期
     * @return 返回秒钟
     */
    public static int getSecond(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.SECOND);
    }

    /**
     * 返回毫秒
     * 
     * @param date
     *            日期
     * @return 返回毫秒
     */
    public static long getMillis(java.util.Date date)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.getTimeInMillis();
    }

    /**
     * 返回字符型日期
     * 
     * @param date
     *            日期
     * @return 返回字符型日期
     */
    public static String getDate(java.util.Date date)
    {
        return format(date, "yyyy/MM/dd");
    }

    /**
     * 返回字符型时间
     * 
     * @param date
     *            日期
     * @return 返回字符型时间
     */
    public static String getTime(java.util.Date date)
    {
        return format(date, "HH:mm:ss");
    }

    /**
     * 返回字符型日期时间
     * 
     * @param date
     *            日期
     * @return 返回字符型日期时间
     */
    public static String getDateTime(java.util.Date date)
    {
        return format(date, "yyyy/MM/dd HH:mm:ss");
    }

    /**
     * 日期相加
     * 
     * @param date
     *            日期
     * @param day
     *            天数
     * @return 返回相加后的日期
     */
    public static java.util.Date addDate(java.util.Date date, int day)
    {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);
        return c.getTime();
    }

    /**
     * 日期相减
     * 
     * @param date
     *            日期
     * @param date1
     *            日期
     * @return 返回相减后的日期
     */
    public static int diffDate(java.util.Date date, java.util.Date date1)
    {
        return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));
    }

    /**
     * 取得指定月份的第一天
     * 
     * @param strdate
     *            String
     * @return String
     */
    public static String getMonthBegin(String strdate)
    {
        java.util.Date date = parseDate(strdate);
        return format(date, "yyyy-MM") + "-01";
    }

    /**
     * 取得指定月份的最后一天
     * 
     * @param strdate
     *            String
     * @return String
     */
    public static String getMonthEnd(String strdate)
    {
        java.util.Date date = parseDate(getMonthBegin(strdate));
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, 1);
        calendar.add(Calendar.DAY_OF_YEAR, -1);
        return formatDate(calendar.getTime());
    }

    /**
     * 常用的格式化日期
     * 
     * @param date
     *            Date
     * @return String
     */
    public static String formatDate(java.util.Date date)
    {
        return formatDateByFormat(date, "yyyy-MM-dd");
    }

    /**
     * 以指定的格式来格式化日期
     * 
     * @param date
     *            Date
     * @param format
     *            String
     * @return String
     */
    public static String formatDateByFormat(java.util.Date date, String format)
    {
        String result = "";
        if (date != null)
        {
            try
            {
                SimpleDateFormat sdf = new SimpleDateFormat(format);
                result = sdf.format(date);
            }
            catch (Exception ex)
            {
                ex.printStackTrace();
            }
        }
        return result;
    }

}
分享到:
评论

相关推荐

    java日期类函数方法整理

    这里使用了`java.util.Calendar`类,它是一个抽象类,提供了一组方法用于操作日期和时间字段。`Calendar.getInstance()`返回一个`Calendar`实例,通常为`GregorianCalendar`,然后可以通过`get()`方法获取特定的日期...

    java处理日期合并

    本文详细介绍了如何使用Java处理日期合并的问题,通过对`TimeoffDateDTO`类的定义和日期合并算法的具体实现,提供了一种有效的方法来解决实际工作中经常遇到的时间段重叠问题。这种方法不仅适用于员工请假时间的管理...

    java日期格式转换

    `Calendar`是抽象类,它为特定时刻(相对于某种日历系统)的“时间”操作提供了一组方法。在Java中,通常使用`Calendar.getInstance()`来获取当前系统的日期和时间。该类也支持各种时间字段的操作,例如增加或减少...

    JAVA时间和日期图解.rar

    `java.time`包的另一个亮点是其链式方法调用,这使得代码更易读和简洁。例如,你可以通过如下方式创建一个日期: ```java LocalDate date = LocalDate.of(2022, Month.JANUARY, 1); ``` 或者修改日期: ```java date...

    Java日期操作接口

    在Java编程语言中,日期和时间的操作是必不可少的一部分。Java提供了多种处理日期的类和接口,使得开发者可以方便地进行日期的创建、比较、格式化和解析等操作。本篇文章将详细探讨Java中的日期操作接口,特别是围绕...

    Java日期格式转换.doc

    Java 日期格式转换是指在 Java 编程语言中将日期和时间从一种格式转换为另一种格式的过程。日期格式转换是 Java 编程中非常重要的一部分,因为日期和时间是许多应用程序中的关键元素。 在 Java 中,日期和时间通常...

    日期连续日期

    "连续日期"这个概念通常指的是一个序列中的日期没有间断,每个日期紧接着前一个日期,形成一个完整的日期链。在这个场景中,"连续日期"可能涉及到数据库设计、数据清洗、时间序列分析等多个知识点。 首先,我们讨论...

    java日期函数示例

    以上内容详细介绍了 Java 日期函数的基本用法,包括日期和时间元素的表示法、日期间隔的计算、计算月份最大天数的方法、日期和时间的格式化输出以及计算一年中的第几星期等内容。通过这些知识点的学习和实践,开发者...

    最全的java时间(日期)工具类

    在Java编程中,日期和时间处理是不可或缺的一部分。Java提供了多种工具类来处理日期和时间,其中`java.time`包是Java 8引入的新API,极大地增强了日期和时间的处理能力。本文将深入探讨Java中的日期时间工具类,特别...

    Java编程输入两个年月日,(1)判断两个日期是否相同,并且将相差的天数显示出来;(2)将日期后推或前推N天,并将该日期输出。

    在Java中处理日期和时间通常有几种方法,这里主要介绍`java.util.Date`类和`java.time`包下的相关类。不过,在这段代码中,开发者选择了一种自定义的方式来实现日期的操作。 #### 1.1 日期比较与计算天数差 **目标...

    Java日期记事本Java日期记事本

    5. **TemporalAdjusters**: 这是一组接口和预定义的调整器,用于对日期和时间进行操作,如将日期调整为下一个工作日、下一个月份的第一天等。 6. **DateTimeFormatter**: 用于格式化和解析日期时间,如"yyyy-MM-dd ...

    JAVA生成订单号(日期+流水号)

    本文将详细介绍一个通过Java语言实现的简单而有效的订单号生成策略——基于日期与流水号的组合。 #### 二、日期与时间处理 1. **日期时间格式化**:代码中使用`SimpleDateFormat`类来格式化当前时间。例如: ```...

    日期工具Java类

    Calendar类是一个抽象类,为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供方法,并为操作日历字段提供了一些便捷方法。SimpleDateFormat类则用于格式化和解析日期。 2. Calendar类的...

    与众不同的 Java 日期格式化大全

    在 Java 中,我们可以使用 `java.text.SimpleDateFormat` 类的 `format` 方法将日期对象格式化为符合模式的字符串。例如,下面的代码将日期对象格式化为 "yyyy-MM-dd HH:mm:ss" 格式的字符串: ```java new ...

    java 日期转农历(天干年份).rar

    这个压缩包文件“java 日期转农历(天干年份).rar”显然包含了实现这一功能的代码示例。在这个案例中,重点是使用Java的静态方法来完成日期的转换,尤其是将日期转换为包含天干年份的农历表示。 首先,我们需要...

    java常用的一些简单方法

    例如,`dateToStr`方法接收一个`java.util.Date`对象,并通过创建一个`SimpleDateFormat`实例,设定日期格式("yyyy-MM-dd HH:mm:ss"),然后使用`format`方法将日期对象转换为字符串。这个方法对于日志记录或数据...

    JAVA Swing日期选择控件datepicker的使用

    在Java Swing库中,DatePicker是一个常用的用户界面组件,它允许用户选择日期。Swing本身并不直接提供一个标准的DatePicker组件,但可以通过第三方库或者自定义组件实现。在本篇文章中,我们将深入探讨如何在Java ...

    java计算两个日期相隔的天数

    在Java编程语言中,计算两个日期之间的天数差是一个常见的任务,这在处理时间相关的业务逻辑时非常有用。本文将详细介绍如何使用Java进行此类计算,包括基础方法、API的使用以及可能遇到的问题。 首先,Java提供了`...

Global site tag (gtag.js) - Google Analytics