`
wanghongwei
  • 浏览: 111897 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 日期处理

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

/**
* <pre>
* 日期时间的处理
* </pre>
* @author lidq
*
*/
public class DateUtil
{
    /**
     * 检查日期格式
     * @param year
     * @param month
     * @param day
     * @return boolean
     */
    public final static boolean chkDateFormat(int year,int month,int day) {
        try {
            /*
           // 如果输入日期不是8位的,判定为false.
            if (null == date || "".equals(date) || !date.matches("[0-9]{8}")) {
                return false;
            }
            */

            if((year<2000)||(year>3000))
            {
                return false;
            }
            if((month<0)||(month>12))
            {
                return false;
            }
            if((day<0)||(day>31))
            {
                return false;
            }
           
            //当 年、月、日都有效时。
            if((year != 0)&&( month != 0 )&&( day != 0 ))
            {
                Calendar calendar =   Calendar.getInstance();
                // 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
                calendar.setLenient(false);
                calendar.set(Calendar.YEAR, year);
                calendar.set(Calendar.MONTH, month-1);
                calendar.set(Calendar.DATE, day);
               // 如果日期错误,执行该语句,必定抛出异常.
                calendar.get(Calendar.YEAR);
            }

        } catch (IllegalArgumentException e) {
            return false;
        }
        return true;
    }

    /**
     * 检查日期是否有效
     * @param year
     * @param month
     * @param day
     * @return boolean
     */
    public final static boolean chkDateValid(int year,int month,int day) {
        try {
            /*
           // 如果输入日期不是8位的,判定为false.
            if (null == date || "".equals(date) || !date.matches("[0-9]{8}")) {
                return false;
            }
            */

            if((year<2000)||(year>3000))
            {
                return false;
            }
            if((month<=0)||(month>12))
            {
                return false;
            }
            if((day<=0)||(day>31))
            {
                return false;
            }
           
            //当 年、月、日都有效时。
            Calendar calendar =   Calendar.getInstance();
           
            // 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
            calendar.setLenient(false);
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month-1);
            calendar.set(Calendar.DATE, day);
           // 如果日期错误,执行该语句,必定抛出异常.
            calendar.get(Calendar.YEAR);

        } catch (IllegalArgumentException e) {
            return false;
        }
        return true;
    }

    /**
     * 检查日期是否有效
     *
     * @param year
     * @param month
     * @param day
     * @param hour
     * @param minute
     * @param second
     * @return boolean
     */
    public final static boolean chkDateValid(int year,int month,int day,int hour,int minute,int second) {
        try {
            /*
           // 如果输入日期不是8位的,判定为false.
            if (null == date || "".equals(date) || !date.matches("[0-9]{8}")) {
                return false;
            }
            */

            if((year<2000)||(year>3000))
            {
                return false;
            }
            if((month<=0)||(month>12))
            {
                return false;
            }
            if((day<=0)||(day>31))
            {
                return false;
            }
           
            if((hour<0)||(hour>24))
            {
                return false;
            }
            if((minute<0)||(minute>60))
            {
                return false;
            }
            if((second<0)||(second>60))
            {
                return false;
            }
           
            //当 年、月、日都有效时。
            Calendar calendar =   Calendar.getInstance();
           
            // 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
            calendar.setLenient(false);
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month-1);
            calendar.set(Calendar.DATE, day);
            calendar.set(Calendar.HOUR_OF_DAY, hour);
            calendar.set(Calendar.MINUTE, minute);
            calendar.set(Calendar.SECOND, second);
           // 如果日期错误,执行该语句,必定抛出异常.
            calendar.get(Calendar.YEAR);

        } catch (IllegalArgumentException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }

    /**
     * 日期转化为字符串,如2007年1月2日 转为 2007010203
     * @param year
     * @param month
     * @param day
     * @return String 2007010203
     */
    public final static String praseDateToString(int year,int month,int day)
    {
        return String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day);
    }

    /**
     * 日期转化为字符串,如2007年1月2日3时4分5秒 转为 20070102030405
     * @param year
     * @param month
     * @param day
     * @param hour
     * @param minute
     * @param second
     * @return String 20070102030405
     */
    public final static String praseDateToString(int year,int month,int day,int hour,int minute,int second)
    {
        return String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day) + String.format("%02d",hour) + String.format("%02d",minute) + String.format("%02d",second);
    }

    /**
     * 日期转化为格式化字符串,如2007年1月2日3时4分5秒 转为 2007-01-02 03:04:05
     * @param year
     * @param month
     * @param day
     * @param hour
     * @param minute
     * @param second
     * @return String 2007-01-02 03:04:05
     */
    public final static String praseDateToStringFormat(int year,int month,int day,int hour,int minute,int second)
    {
        return String.format("%04d",year) + "-" + String.format("%02d",month) + "-" + String.format("%02d",day) + " " + String.format("%02d",hour) + ":" + String.format("%02d",minute) + ":" + String.format("%02d",second);
    }
   
    /**
     * 日期转化为整数,如2007年1月2日 转为 2007010203
     * @param year
     * @param month
     * @param day
     * @return long 2007010203
     */
    public final static long praseDateToLong(int year,int month,int day)
    {
        return Long.parseLong(String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day));
    }

    /**
     * 日期转化为整数,如2007年1月2日3时4分5秒 转为 20070102030405
     * @param year
     * @param month
     * @param day
     * @param hour
     * @param minute
     * @param second
     * @return long 20070102030405
     */
    public final static Long praseDateToLong(int year,int month,int day,int hour,int minute,int second)
    {
        return Long.parseLong(String.format("%04d",year)+ String.format("%02d",month) + String.format("%02d",day) + String.format("%02d",hour) + String.format("%02d",minute) + String.format("%02d",second));
    }

   
    /**
     * <pre>
     * 取现在时间
     * 返回整数数组 {YYYY,MM,DD,HH,MM,SS}
     * 如:{2007,07,04,10,36,01}
     * </pre>
     */
    public final static int[] getIntDateNow() {
        int[] intNow = new int[6];
        try {
           
            Calendar calendar =   Calendar.getInstance();
            // 当 Calendar 处于 non-lenient 模式时,如果其日历字段中存在任何不一致性,它都会抛出一个异常。
            //calendar.setLenient(false);
           
           // 如果日期错误,执行该语句,必定抛出异常.
            intNow[0] = calendar.get(Calendar.YEAR);
            intNow[1] = calendar.get(Calendar.MONTH)+1;
            intNow[2] = calendar.get(Calendar.DAY_OF_MONTH);
            intNow[3] = calendar.get(Calendar.HOUR_OF_DAY);
            intNow[4] = calendar.get(Calendar.MINUTE);
            intNow[5] = calendar.get(Calendar.SECOND);
        } catch (IllegalArgumentException e) {
            for(int i = 0;i<6; i++)
                intNow[i] = 0;
        }
        return intNow;
    }

    /**
     * <pre>
     * 取现在时间
     * 返回字符串 YYYYMMDDHHMMSS
     * 如:20070102030405
     * </pre>
     */
    public final static String getStringDateNow() {
        int[] intNow = getIntDateNow();
        return praseDateToString(intNow[0],intNow[1],intNow[2],intNow[3],intNow[4],intNow[5]);
    }

    /**
     * <pre>
     * 取现在时间
     * 返回格式化字符串 YYYY-MM-DD HH:MM:SS
     * 如:2007-01-02 03:04:05
     * </pre>
     */
    public final static String getStringDateNowFormat() {
        int[] intNow = getIntDateNow();
        return praseDateToStringFormat(intNow[0],intNow[1],intNow[2],intNow[3],intNow[4],intNow[5]);
    }
   
    /**
     * <pre>
     * 取现在时间
     * 返回Long YYYYMMDDHHMMSS
     * 如:20070102030405
     * </pre>
     */
    public final static long getLongDateNow() {
        int[] intNow = getIntDateNow();
        return praseDateToLong(intNow[0],intNow[1],intNow[2],intNow[3],intNow[4],intNow[5]);
    }

}
分享到:
评论

相关推荐

    java日期处理大全

    ### Java日期处理大全:掌握时间的艺术 在Java编程中,日期和时间的处理是不可或缺的一部分,尤其是在涉及到数据记录、时间戳、定时任务等场景时。本文将深入探讨Java中的日期处理技术,涵盖从基础到进阶的各种技巧...

    java日期处理

    java日期处理

    java日期处理总结

    java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...

    Java日期处理工具类

    基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。

    java日期处理方法

    ### Java日期处理方法 在Java开发中,对日期与时间的操作是极其常见且重要的一个环节。无论是处理用户的出生年月日、注册日期还是订单的创建时间等,都需要使用到Java提供的日期类进行处理。本文将深入探讨Java中的...

    常用代码:java日期处理

    这篇博客"常用代码:java日期处理"很可能包含了关于如何在Java中有效地处理日期的实用示例和方法。这里我们将深入探讨Java日期处理的核心概念、API和最佳实践。 1. **Java日期API的发展历程** - Java 1.0引入了`...

    DateHandler.java日期处理类Java文件下载.rar

    DateHandler.java日期处理类Java文件下载,有些功能很不错哦,比如计算是否是季度末、计算从现在开始几天后的时间、得到当前时间,用于文件名,使用yyyyMMddHHmmss格式、比较日期,与现在-N天的日期对比、比较日期,...

    Java日期处理类 自己整理的

    自己整理的Java日期处理类 。包含获取两个之间段之间的天数、月初日期,月末日期、一个时间段之间的所有的日期,月份 一周的第一天,最后一天、 当前是周几等。仅供参考

    java日期处理小结

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

    java 日期处理工具类

    java 日期处理工具类

    java语言日期处理大全

    以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以获取服务器上的当前日期。创建一个Date对象即会返回当前系统时间,如`Date ...

    Java中日期处理的代码

    根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下有关 Java 日期处理的知识点: ### 1. 导入必要的包 在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例...

    java日期处理.pdf

    在Java编程中,日期处理是常见的任务之一,用于管理和计算日期和时间。Java提供了多种类和方法来处理日期,如`Date`、`SimpleDateFormat`和`Calendar`。以下是关于这些类和方法的详细说明: 1. **`java.util.Date`*...

    java(日期处理大全)

    第一部分关于JAVA的Date (参考关于JAVA的Date总结) 第二部分Date工具类(参考一个总结好的很好的关于JAVA的Date工具类)

    java日期处理[文].pdf

    在Java编程中,日期处理是常见的任务之一,用于管理和计算日期和时间。本文将深入探讨Java中的日期处理机制,特别是围绕`java.util.Date`和`java.util.Calendar`这两个核心类。 首先,`java.util.Date`类是Java中...

    java日期和查询数据库生成XML文件类

    1. **Java日期处理**: - `java.time`包:Java 8引入的新时间日期API,提供了`LocalDate`, `LocalTime`, `LocalDateTime`等类,它们提供了丰富的日期和时间操作功能。 - `SimpleDateFormat`:旧版日期格式化工具,...

Global site tag (gtag.js) - Google Analytics